1. 반복문 do-while문 


1) 구조


초기식;

do {

증감식;

실행문;

} while(조건식);



2) 무조건 반복할 내용을 최소 한 번은 실행하고 나서 그 이후에 반복 여부를 판별한다. 

3) 특별한 케이스가 아니면 잘 사용하지 않는다. > 무조건 한 번은 실행되게 할 때!

4) while(조건식); > 세미콜론 빠뜨리지 말자! 


# for문과 while문 비교하기 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package whileex;
 
public class WhileTest03 {
    public static void main(String[] args) {
 
        // 1부터 5까지 출력하기
 
        // for문
        for (int i = 1; i <= 5; i++) {
            System.out.print(i + " ");
        }
 
        System.out.println();
 
        // while문
        int i = 1;
        while (i <= 5) {
            System.out.print(i + " ");
            i++;
        }
    }
}
cs


# while문과 do-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
package whileex;
 
public class WhileTest04 {
    public static void main(String[] args) {
 
        // 1부터 10까지 출력
 
        // while문: 조건이 맞지 않으면 아예 실행하지 않는다.
        // int i=11;
        int i = 1;
        while (i <= 10) {
            System.out.print(i + " ");
            i++;
        }
 
        System.out.println();
        // do-while문: 조건식에 맞지 않아도 무조건 한 번 실행하기 때문에 11이 출력된다.
        // int j=11;
        int j = 1;
        do {
            System.out.print(j + " ");
            j++;
        } while (j <= 10);
 
    }
}
cs




2. Math 클래스 


1) java.lang 패키지: import 하지 않아도 기본으로 들어있다. 

2) Math.random(): 반환형은 실수형으로 0.xxxx 형식으로 들어있다. 




3. 언제 for문과 while문을 사용하는가?


1) 반복 횟수를 알고 있을 때 > for문

2) 반복 횟수를 모를 때 > while문

while(true)의 형태로 사용하되, 특정조건을 만족하지 않으면 종료(break)하도록 구현하자




4. 보조 제어문


1) 보조 제어문은 단독으로 사용할 수 없고, 제어문(반복문, 조건문)과 함께 쓰인다. 

2) break;

# 반복문과 switch 구문에서만 사용 가능

# 반복문에서는 가장 가까운 반복문을 종료시킨다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package whileex;
 
public class WhileTest07 {
    public static void main(String[] args) {
 
        // 반복문 안에서 break는 가장 가까운 반복문을 종료시킨다.
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                if (j == 3) {
                    break;
                }
 
                System.out.println("i = " + i + ", j = " + j);
            }
        }
 
    }
}
cs



3) continue;

# 반복문 안에서만 사용 가능

# for문에서의 continue는 증감식으로 직행

# while문에서의 continue는 조건식으로 직행 

# 반복문에서 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
package whileex;
 
public class WhileTest09 {
    public static void main(String[] args) {
 
        // 1부터 10까지의 정수 중 '홀수' 출력하기
        
        // continue를 안 썼을 때
        for (int i=1; i<=10; i++) {
            if (i%== 1) {
                System.out.print(i + " ");
            }
        }
        
        System.out.println();
        
        // continue를 썼을 때
        for (int i=1; i<=10; i++) {
            if (i%== 0) {
                continue;    // 실행하지 않고 지나가는 pass 역할
            }
            System.out.print(i + " ");
        }
    }
}
cs


# 반복문 속 continue

1
2
3
4
5
6
7
for (int i = 0; i < 10; i++) {
    if (i == 4) {
        continue;
        // 아예 실행이 안 됨! 빨간줄 뜸!
        System.out.println(i);
    }
}
cs


# 2중 반복문 속 break (2)


1
2
3
4
5
6
7
8
9
10
for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 5; j++) {
        if (i == 3) {
            // 두번째 for문만 탈출!
            break;
        }
        System.out.println("i:" + i + ",j:" + j);
    }
    System.out.println();
}
cs


# 2중 반복문 속 break (2)


1
2
3
4
5
6
7
8
9
10
// while은 무한 루프!
while (true) {
    for (int i = 0; i < 10; i++) {
        if (i == 3) {
            // for문만 탈출!
            break;
        }
        System.out.println(i);
    }
}
cs



5. 데이터의 원본 유지

1
2
3
4
5
6
7
8
9
10
11
12
13
package forex;
 
public class ForTest10 {
    public static void main(String[] args) {
 
        int money = 500;
        int sum = money;    // 원금, 총합을 따로 선언 > 데이터를 보존하는 것이 좋다. 
        for (int i=0; i<5; i++) {
            sum++;
        }
        System.out.println("영희의 잔액: " + sum);
    }
}
cs