출처 : 자바의 정석 책을 보며 정리 및 공부하고 있습니다. 

while문 예제

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
32
33
34
35
import java.util.Scanner;
 
public class WhileEx01 {
 
    public static void main(String[] args) {
        int num;
        int sum = 0;
        boolean flag = true// while문의 조건식으로 사용
        
        System.out.println(" 합계를 구할 숫자를 입력하세요 (끝내려면 0을 입력) : ");
        
        while (flag) { // flag 값이 true면 실행
            System.out.print(">>>");
            Scanner scanner = new Scanner(System.in);
            String tmp        = scanner.nextLine();
            num                = Integer.parseInt(tmp);
            
            if (num!=0) {
                sum += num; // num이 0이 아니면 sum에 더함
            } else {
                flag = false// num이 0이면 flag 값을 변경
            }
        }
        
        System.out.println("sum : " + sum);
    }
}
 
/*
 합계를 구할 숫자를 입력하세요 (끝내려면 0을 입력) : 
>>>100
>>>200
>>>0
sum : 300
*/
cs


do-while문은 while문의 변형으로 기본적인 구조는 while문과 같으나 do 블럭을 먼저 수행한 후에 조건식을 평가한다. 

즉, false 조건에서도 최소한 한 번은 실행 된다.



- break문 

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
public class BreakEx01 {
 
    public static void main(String[] args) {
        int sum = 0;
        int i    = 0;
        
        while (true) {
            if (sum > 50break;
            
            i++;
            sum += i;
        }
        
        System.out.println("i : " + i);
        System.out.println("sum : " + sum);
    }
}
 
/*
결과)
i : 10
sum : 55
// i가 10이면 sum이 50이 넘어 break문에 의해 while문을 빠져나온다.
*/
cs


- continue문

반복문 내에서만 사용되며, 반복이 진행되는 도중에 continue문을 만나면 반복문의 끝으로 이동해서 다음 반복으로 넘어간다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class ContinueEx01 {
 
    public static void main(String[] args) {
        for (int i = 0; i <= 10; i++) {
            if (i % 3 == 0continue;
            
            System.out.println(i);
        }
    }
}
 
/*
결과) 3의 배수로 continue문이 실행되면 블럭의 가장 끝으로 이동한다. break문처럼 빠져 나가지는 않음
1
2
4
5
7
8
10
*/
cs



- 이름 붙은 반복문

break문은 가장 근접한 하나의 반복문만 벗어나기 때문에 여러 반복문이 중첩된 것을 한 번에 다 나갈 수 없다. 

이때는 중첩 반복문 앞에 이름을 붙이고 break문과 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
 
public class NamedLoopEx01 {
 
    public static void main(String[] args) {
        // for문에 Loop1 이라는 이믈을 붙임
        Loop1 : for (int i = 2; i<= 9; i++) {
            for (int j = 1; j <= 9; j++) {
                if (j == 5
                    break Loop1; 
                    //break;
                    //continue Loop1;
                    //continue;
                System.out.println(i + " * " + j + " = " + i * j);
            }
            System.out.println();
        }
    }
}
 
/*
결과) break Loop1 -> Loop에 이름을 지정했기 때문에 아예 빠져나올 수 있음
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
*/ 
cs


+ Recent posts