-
반복문(for문, while문)개발/자바JAVA 2024. 1. 22. 17:37
▶반복문
> 프로그램 수행 흐름을 바꾸는 역할을 함, 특정 문장들을 반복해서 수행하도록 함.
> [종류] : for문, while문, do-while문
> for문 : 반복 횟수를 정확하게 알고 있을때 사용한다!!
> while문 : 반복 횟수를 정확하게 모를때 사용.
> do-while문 : 반복 횟수를 정확하게 모를때 사용.
▶for문
> 초기식, 조건식, 증감식으로 이루어져 있고, 각각 세미콜론(마침표) 로 구분되어 있다.
> 초기식 : 반복문이 시작될 때 초기에 "단 한번만" 실행. (변수 선언 및 초기화) (int i =0; )
> 조건식 : 반복문이 수행될 조건을 작성하는 구문,
- 1회전 : 초기식 확인 후 조건식 확인 -> 조건식이 true면 문장 수행, false면 수행하지 않음.
- 2회전 : 증감식 연산 후 조건식 확인 -> 조건식이 true면 문장 수행, false면 수행하지 않음.
(보통 초기식에서 세팅한 변수를 가지고 조건식을 작성함.) (i<10;)
> 증감식 : 반복문을 제어하는 변수값을 증감 시키는 구문 (초기식에서 세팅한 변수를 가지고 증감식을 작성함)(i++)
> 조건식이 false가 나올때 까지 문장 수행.
흐름 다시 한 번 정리.
초기식 --> 조건식(조건검사) --> true일 경우 실행 -> 코드 실행하고 증감식으로 이동 --> 조건식(조건검사) -->true일경우... --> 조건식(조건검사) --> false일 경우 for문 종료.
이런식으로 i가 0부터 시작해서 5가 되기전까지 5번 반복한다.
i가 0부터 시작할 필요는 없다.\
증감식이 1씩 증가할 필요도 없다!!
부등호의 방향이 같을 필요도 없고, 감소도 가능함!
●일부러 무한반복을 돌리고 싶을때
조건식을 true로 하면 됨!
이렇게도 된다!
얘도됨;;;!!!!
※참고로 if문에서도 의도적으로 실행시키려면
if(true){
} 이렇게 해도 된다.
●연습문제
1.
1부터 사용자가 입력한 정수까지의 총 합을 구해서 출력하기
public void method9() { //1부터 사용자가 입력한 정수까지의 총 합을 구해서 출력하기 Scanner sc = new Scanner(System.in); System.out.println("숫자를 입력하세요 :"); int num = sc.nextInt(); sc.nextLine(); int sum=0; for (int i = 1; i <= num; i++) { sum += i; } System.out.println(sum); } }
2.
랜덤 메소드를 이용해서
1부터 랜던값(1~100사이 랜덤한 정수) 까지의 총 합계
public void method10() { //1에서부터 매번 달라지는 랜덤값(1~10 사이의 랜덤한 정수) 까지의 총 합계 Scanner sc = new Scanner(System.in); int randomNum = (int)(Math.random()*100); //100까지 랜덤 System.out.println("랜덤 수 : " + randomNum); int sum=0; for(int i =0; i<= randomNum; i++) { sum += i; } System.out.println("1부터 랜덤 수 까지의 합계" + sum); } }
※랜덤 메소드
int random = (int)(Math.random() * 랜덤값 범위) + 시작 수);
ex) 11~20 사이의 랜덤한 정수값??
int random = (int)((Math.random()*10) +11);
3. 입력한 숫자까지 곱 구하기
public void method11() { Scanner sc = new Scanner(System.in); System.out.println("숫자를 입력하세요 : "); int num = sc.nextInt(); sc.nextLine(); int x=1; for(int i =1; i<=num; i++) { x *= i; } System.out.println("1~10까지의 곱 : " + x); } }
4. 2~9단까지 구구단 만들기.
public void method12() { //사용자로부터 2~9 사이의 정수를 입력받아 해당 구구단을 출력 Scanner sc = new Scanner(System.in); System.out.print("구구단 2~9단중 입력하세요 : "); int num = sc.nextInt(); sc.nextLine(); System.out.println(num + "단 입니다."); for(int i=1; i<=9; i++) { System.out.println(num + "x" + i + "=" + (num*i)); } }
●중첩for문(이중for문)
예시 1
예시2
예시3
1***
*2**
**3*
***4 를 찍어보자
패턴 파악이 중요...
행과, 열이 일치할때 숫자가 나온다.
i==j 일때 숫자를 찍는 것이 중요!!
public void method15() { for (int i = 1; i < 5; i++) { for (int j = 1; j < 5; j++) { if (i == j) { System.out.print(i); } else { System.out.print("*"); } } System.out.println(); } }
예시5*
**
***
****
*****
public void method16() { for (int i = 1; i < 6; i++) { for (int j = 1; j<=i ; j++) { System.out.print("*"); } System.out.println(); } }
예시6
*****
****
***
**
*
public void method17() { for (int i = 1; i < 6; i++) { for (int j = 5; j >= i; j--) { System.out.print("*"); } System.out.println(); } }
예시 7
구구단 전체
public void method18() { for(int i=1; i<=9; i++) { System.out.println(i+"단"); for(int j =1; j<=9; j++) { System.out.println(i+"x"+j+"="+(i*j)); } } }
예시 8
public void method21() { Scanner sc = new Scanner(System.in); System.out.print("영문 문자열을 입력하세요 : "); String e = sc.nextLine(); for(int i=0; i<e.length(); i++) { System.out.println((i+1) +"번째 글자 : " + e.charAt(i)); } System.out.println(); }
'개발 > 자바JAVA' 카테고리의 다른 글
배열 (1) 2024.01.23 반복문(while문), break문, continue문 (0) 2024.01.23 제어문 > 조건문(if, switch문) (0) 2024.01.19 연산자 (1) 2024.01.18 출력메소드(printf) (0) 2024.01.18