(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)

 

while문은 반복을 위한 문장으로, 조건을 만족하는 동안 블록 안의 내용을 계속 반복 실행하고, 조건을 만족하지 않는 경우 해당 블록을 빠져나온다. 반드시 블록 안의 조건식의 결과값을 변화시키는 문장이 필요하며, 조건이 잘못 처리될 경우 무한 루프에 빠질 수 있다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Main {
    public static void main(String[] args) {
        int num = 1;
        
        System.out.println("[1부터 10까지 정수 출력]");
        
        while(num <= 10) {
            System.out.println(num++);
        }
        
        System.out.println("종료!");
    }
}
cs

Line 3 : 정수형 변수 num 선언 후 1로 초기화

Line 5 : 문자열 출력

Line 7 : num이 10보다 작거나 같은 동안 블록 안의 내용 반복

Line 8 : num의 값 출력 후 num을 1 증가

Line 11 : 문자열 출력

 

■ while문 무한 루프

- while문은 조건을 만족하는 동안 계속해서 반복 실행되는데, 만약 조건문을 계속해서 만족하게 된다면 while문을 빠져나오지 못하고 계속 실행하는 무한 루프에 빠지게 된다.

1
2
3
4
5
6
7
8
9
public class Main {
    public static void main(String[] args) {
        int num = 1;
        
        while(num > 0) {
            System.out.println(num++);
        }
    }
}
cs

Line 3 : 정수형 변수 num 선언 후 1로 초기화

Line 5 : num이 0보다 큰 동안 블록 안의 내용 반복

Line 6 : num의 값 출력 후 num을 1 증가

※ num의 값은 무조건 0보다 크므로 무한 루프에 빠지게 된다.

 

■ while문 중첩

- while문 안에 while문을 포함시킨 것으로, 반복 구조 내에서 또 다른 반복 구조가 형성된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Main {
    public static void main(String[] args) {
        int a = 1, b = 1;
        
        while(a <= 3) {
            System.out.println("[a = " + a + "일 때]");
            
            while(b <= 2) {
                System.out.println("b = " + b);
                ++b;
            }
            
            ++a;
            b = 1;
        }
    }
}
cs

Line 3 : 정수형 변수 a, b 선언 후 각각 1로 초기화

Line 5 : a가 3보다 작거나 같은 동안 블록 안의 내용 반복

Line 6 : a의 값 출력

Line 8 : b가 2보다 작거나 같은 동안 블록 안의 내용 반복

Line 9 : b의 값 출력

Line 10 : b를 1 증가

Line 13 : a를 1 증가

Line 14 : 내부의 while문을 빠져나오면 b를 다시 1부터 출력해 주기 위해 b를 1로 초기화

a b
1 1
1 2
2 1
2 2
3 1
3 2

 

'Java' 카테고리의 다른 글

자바(Java) for문  (0) 2020.06.26
자바(Java) do-while문  (0) 2020.06.26
자바(Java) switch-case문  (0) 2020.06.25
자바(Java) if문 (if, if-else, if-else if-else)  (0) 2020.06.25
자바(Java) 연산자 우선순위  (0) 2020.06.24

+ Recent posts