CS/JAVA

반복문 (for, while)

휴먼코딩 2024. 1. 17. 09:04

반복문

프로그램 수행 흐름을 바꾸는 역할을 하는 제어문 중 하나로 특정 문장들을

반복해서 수행하도록 함

 

반복문의 종류

//for문

for(초기식; 조건식; 증감식)
	{
    	수행될 문장;
    }
    
//while문

while(조건식) {
	수행될 문장;
    [증감식 or 분기문];
}

 

for문


for 문은 초기식 조선식 증감식을 생략할 수 있다.

for(초기식; 조건식; 증감식) {
	수행될 문장;
 }
 
/*1회전: 초기식 확인 후 조건식 확인
 *	조건식이 true면 문장 수행
 *   조건식이 false면 수행하지 않음
 *   
 *  2회전: 증감식 연산 후 조건식 확인
 *	조건식이 true면 문장 수행
 *  조건식이 false면 수행하지 않음
 */
   
//  2회전 이상부터는 모두 2회전과 동일하고
//  조건식이 false가 나올 때까지 문장 수행

 

for 문 예시

for(int i = 1; i <= 10; i++) {
	System.out.println(i + "출력");
}

실행 결과:

1 출력
2 출력
...
9 출력
10 출력
/* ㉠. int i = 0; 
 * ㉡. i <3;
 * ㉢. System.out.println(...);
 * ㉣. i++
 *
 * 첫번째 루프의 흐름 [i=0]
 * ㉠ → ㉡ → ㉢ → ㉣
 *
 * 두번째 루프의 흐름 [i=1]
 * ㉡ → ㉢ → ㉣
 *
 * 세번째 루프의 흐름 [i=2]
 * ㉡ → ㉢ → ㉣
 *
 * 두번째 루프의 흐름 [i=3]
 * ㉢ i = 3 이므로 탈출
 */
 
 
for(int i = 0; i < 3; i++) {
	System.out.println(...);
}

 

중첩 반복문

/* for 문에 진입하면 수행될 문장 1을 먼저 수행하고
 * 두번째 for문에 진입하면 조건식2가 false가 될 때까지 문장 2를 수행
 * 나오면 수행될 문장 3을 수행하고
 * 조건식 1로 돌아와 true면 다시 반복
 */
 
for(초기값1; 조건식1; 증감식1){
	수행될 문장1;
    for(초기값2; 조건식2; 증감식2){
    	수행될 문장2;
    }
    수행될 문장3;
}
class ForInFor{
	public static void main(String[] args){
    	for(int i = 0; i <3; i++){ //바깥쪽 for문
        	System.out.println("------------");
            for(int j - 0; j < 3; j++) { //안쪽 for문
            	System.out.print("[" + i " + "," + j + "]");
                }
                System.out.print('\n');
                }
           	}
       }
 }

구구단 출력 예제

for(int i = 2; i < 10; i++) { // 2단부터 9단까지 진행을 위한 바깥쪽 for문
	for(int j = 1; j < 10; j++) // 1부터 9까지의 곱을 위한 안쪽 for문
    	System.out.println(i + " x " + j + " = " + (i *j));
    }
    
출력 결과:
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 x 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81

while문

{}안에 조건을 벗어나게 할 연산(증감식,분기문)필요

/* 조건식이 true일 때 문장 수행
* 문장 수행이 끝나면 조건식
* 다시 확인 후 true 면 수행
* 조건식이 false가 될 때까지 수행
* 조건식이 false가 되면 반복문 종료
*/

while(조건식){
	수행될 문장;
    [증감식 or 분기문];
}

 

while문 예시

 int i = 1;
 while(i <= 10) {
 	System.out.println( i + "출력");
    i++;
}

출력결과:
1 출력
2 출력
...
9출력
10출력

 

do~while

 while과 do~while의 차이점

do~while은 조건문이 true가 아니더라도 무조건 한 번 이상 수행

{} 안에 조건을 벗어나게 할 연산(증감식,분기문) 필요

do {
	수행될 문장;
    [증감식 or 분기문];
 } while(조건식);
 
 // do 안의 내용 먼저 실행
 // 조건식 확인 후 true면 문장 수행
 // false면 종료
 // while 뒤에 ; 꼭 필요

do ~ while문 예시

int i = 1;
do {
	System.out.println(i + "출력");
    i++;
} while(i <= 10);

출력 결과:
1 출력
2 출력
...
9 출력
10 출력

 

분기문

break

반복문에서는 break문 자신이 포함된 가장 가까운 반복문을 빠져나가는 구문

for(int i = 1;; i++){
	System.out.println(i + " 출력 " );
    if(i >= 10){
    	break;
    }
}

 

continue

반복문 내에서만 사용 가능하며

반복문 실행 시 contunue 아래 부분은 실행하지 않고 반복문을 다시 실행한다.

 

for문의 경우 증감식으로 이동, while(do~while)문의 경우 조건식으로 이동

전체 반복 중에 특정 조건을 만족하는 경우를 제외하고자 할 때 유용하다.

 

for(int i = 1; i <= 10; i++) {
	if(i % 2 == 0){
    	continue;
    }
    System.out.println(i + "출력");
 }