개발

11. 흐름 제어 반복문 본문

Backend/Java

11. 흐름 제어 반복문

Study 2021. 7. 18. 01:18

안녕하세요 

흐름제어 마지막 반복문을 포스팅 해 보겠습니다.

 

 

1. Do~While

do문은 while에 지정된 식이 false가 될 때까지 { }로 묶인 하나의 문 또는 블록을 반복하여 실행합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
public class DoWhile {
    public static void main(String[] args) {
        int i = 10;
 
        do {
            System.out.printf("a) i : %d%n", i--);
        } while (i > 0);
 
        do {
            System.out.printf("b) i : %d%n", i--);
        } while (i > 0);
    }
}
cs

 

do~while 문은 while문과 달리 조건식이 계산되기 전에 한번 실행됩니다.

do~while 블록 내의 모든 위치에서 break문을 사용하여 루프를 벗어날 수 있고, continue문을 사용하여 while식 계산문을 직접 단계별로 실행할수도 있습니다.

결과가 true면 루프의 첫번째 문에서 실행이 계속됩니다.

결과가 false면 do~while루프 다음의 첫번째 문에서 실행이 계속됩니다.

 

 

 

 

2. While

while문은 지정된 식이 false가 될 때까지 하나의 문 또는 문 블록을 반복합니다. 각 루프를 실행하기 전에 while식을 테스트하기 때문에 while루프는 실행되지 않을 수도 있습니다.

무조건 한번 이상 실행되는 do~while문과 다른 부분입니다.

 

1
2
3
4
5
6
7
8
9
10
11
public class While {
    public static void main(String[] args) {
        int i = 10;
        while (i > 0) {
            System.out.printf("a) i : %d%n", i--);
        }
        while (i > 0) {
            System.out.printf("b) i : %d%n", i--);
        }
    }
}
cs

 

 

 

3. For

 

우리가 가장 흔하게 사용하는 반복문입니다.

for루프는 지정된 식이 false가 될 때까지 하나의 문 또는 블록을 반복하여 실행합니다.

for루프를 사용하면 쉽게 배열을 반복하고 순차적으로 처리할 수 있습니다.

while문과 마찬가지로 실행 전 for 식을 테스트하기 떄문에 실행되지 않을 수도 있습니다.

 

아래 식은 무한루프를 걸 때의 예시입니다.

int형이기 떄문에 오버플로우가 일어나기 전에 종료시켜줘야 합니다.

1
2
3
4
5
6
7
8
9
10
public class For {
    public static void main(String[] args) {
        int i = 0;
        for (;;) {
            System.out.println(i++);
            if (i == Integer.MAX_VALUE)
                break;
        }
    }
}
cs

 

 

이중for문을 만들어서 배열등을 쉽게 처리할 수 있습니다.

아래 식은 이중 for문의 예제입니다. 

1
2
3
4
5
6
7
8
9
10
public class For2 {
    public static void main(String[] args) {
        for (int x = 0; x < 5; x++) {
            for (int y = 0; y <= x; y++) {
                System.out.print("*");
            }
            System.out.println("");
        }
    }
}
cs

 

 

4. for (foreach) // 향상된 for문

 

Java에서는 foreach 예약어가 없습니다. 하지만 for문의 Syntax를 변형하여 동일하게 실행할 수 있습니다.
foreach문은 배열이나 컬렉션 또는 enum의 요소만큼 반복하여 실행합니다.

 

만약, 배열의 항목을 추가하거나 제거해야 한다면 for루프를 사용해야 합니다.

foreach에서 항목을 추가하거나 제거하면 java.util.ConcurrentModificationException을 발생 시킵니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.util.ArrayList;
 
public class Foreach {
    public static void main(String[] args) {
        ArrayList<Object> list = new ArrayList<Object>();
        list.add(true);
        list.add(1);
        list.add(2);
        list.add(false);
        list.add("반복문");
 
        for (Object obj : list) {
            System.out.println(obj);
        }
    }
}
cs

 

 

'Backend > Java' 카테고리의 다른 글

13. Java Method 의 OverLoading  (0) 2021.07.18
12. Java Method의 Signature  (0) 2021.07.18
10. 흐름 제어 점프문  (0) 2021.07.18
9. 흐름 제어 선택문  (0) 2021.07.17
8. 연산자(Operator)  (0) 2021.07.17