반복문

  • 프로그램 내에서 똑같은 명령을 일정 횟수만큼 반복하여 수행하도록 제어하는 명령문


For

  • 주어진 횟수만큼 반복하여 실행하는 구조
1
2
3
for(초기식; 조건식; 증감식){
    반복하여 실행할 내용;
}


Enhanced for

  • for문이 모든 원소를 순회할 경우 사용하며 for-each 문이라는 키워드로도 사용된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// for문과 Enhanced for문으로 결과 값 출력하기

int[] nums = {1,2,3,4,5};

// for문으로 출력
for(int i=0; i<nums.length; i++)
{
    System.out.println(nums[i]);
}

// Enhanced for문으로 출력
for(int num : nums){
    System.out.println(num);
}


While

  • 조건문이 만족하는 동안 반복하여 실행하는 구조

  • while과 do-while 구조가 있으며, do-while문은 내용을 실행 후 조건에 따라서 반복 여부를 결정

1
2
3
4
5
6
7
8
9
// while문
while(조건식){
    반복하여 실행할 내용;
}

// do-while문
do{
   반복하여 실행할 내용; 
}while(조건식);


제어문

  • 일반적으로 반복문에서는 다음 조건식을 검사하기 전까지 루프 안에 있는 모든 명령문을 실행하지만 제어문을 통해 사용자가 루프의 흐름을 직접 제어할 수 있다.


continue

  • 루프 내에서 사용하며, 해당 루프의 나머지 부분을 건너뛰고 다음 조건식으로 바로 넘어갈 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// 일반 for문 별찍기
for (int i = 0; i < 5; i++) {
    for (int j = 0; j < i+1; j++) {
        System.out.print("*");
    }
    System.out.println();
}

// 일반 for문의 결과
*
**
***
****
*****
    
// continue문 사용
for (int i = 0; i < 5; i++) {
    if(i==3) continue; // i의 값이 3일때 continue문 실행
    for (int j = 0; j < i+1; j++) {
        System.out.print("*");
    }
    System.out.println();
}

// continue문 사용 결과
*
**
***
*****


break

  • 루프 내에서 사용하며, 조건식의 판단 결과와 상관없이 반복문을 종료하고 싶을 때 사용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// 일반 for문 별찍기
for (int i = 0; i < 5; i++) {
    for (int j = 0; j < i+1; j++) {
        System.out.print("*");
    }
    System.out.println();
}

// 일반 for문의 결과
*
**
***
****
*****
    
// break문 사용
for (int i = 0; i < 5; i++) {
    if(i==3) break; // i의 값이 3일때 break문 실행
    for (int j = 0; j < i+1; j++) {
        System.out.print("*");
    }
    System.out.println();
}

// break문 사용 결과
*
**
***


Labeled Loop

  • break문과 다르게 지정된 최상단 반복문을 탈출하는 방식

    • break문은 변수가 j인 for문에서만 반복문을 종료하지만 loop문은 지정된 전체 for문을 종료합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// break문
for (int i = 2; i < 10; i++) {
    for (int j = 1; j < 10 ; j++) {
        if(j==5) break;
        System.out.printf("%02d X %02d : %02d\t",i,j,i*j);
    }
    System.out.println();
}

//결과
02 X 01 : 02	02 X 02 : 04	02 X 03 : 06	02 X 04 : 08	
03 X 01 : 03	03 X 02 : 06	03 X 03 : 09	03 X 04 : 12	
04 X 01 : 04	04 X 02 : 08	04 X 03 : 12	04 X 04 : 16	
05 X 01 : 05	05 X 02 : 10	05 X 03 : 15	05 X 04 : 20	
06 X 01 : 06	06 X 02 : 12	06 X 03 : 18	06 X 04 : 24	
07 X 01 : 07	07 X 02 : 14	07 X 03 : 21	07 X 04 : 28	
08 X 01 : 08	08 X 02 : 16	08 X 03 : 24	08 X 04 : 32	
09 X 01 : 09	09 X 02 : 18	09 X 03 : 27	09 X 04 : 36
    
// Labeled Loop문
Loop1:
for (int i = 2; i < 10; i++) {
    for (int j = 1; j < 10 ; j++) {
        if(j==5) break Loop1;
        System.out.printf("%02d X %02d : %02d\t",i,j,i*j);
    }
    System.out.println();
}

//결과
02 X 01 : 02	02 X 02 : 04	02 X 03 : 06	02 X 04 : 08	

카테고리:

업데이트:

댓글남기기