Theme. for문

 

먼저, 기본적인 for문 하나를 보자.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package test;
 
public class MainClass {
    public static void main(String[] args) {
    
        int i;
        
        for(i = 0; i < 5 ; i++) {   // (초기화; 조건식; 증감식)
            System.out.println("for loop i = " + i); //수행될 문장
        }
        
        System.out.println("i = " + i); // for문을 빠져나왔을 때, i 값
                
    }
}
 
 
cs

설명하자면,

변수 i에 0을 저장한다음, 매 반복마다 i의 값을 1씩 증가시킨다.

i값이 5가 되면 더이상 5보다 작지 않기 때문에 i < 5가 거짓이 되어 반복을 마친다. 

즉 i값이 0부터 4까지 1씩 증가하니까 모두 5번 반복하는 것이 된다. 

그 결과는 다음과 같다.

< Console >

이제 for문의 형식에 대해 살펴보자

 

1
2
3
    for (초기화; 조건식; 증감식) {
        조건식이 참일 때 수행될 문장을 적는다.
    }
cs

사용될 변수를 초기화할 때, 둘 이상의 변수가 필요하다면 "i = 0, j = 1"과 같이 콤마 ","를 사용한다.

증감식의 경우 "i++", "i--" 을 주로 사용하나, "i = i + 2"처럼 필요에 따라 작성할 수도 있다.

 

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package test;
 
public class MainClass {
    public static void main(String[] args) {
    
        int i;
        
        for(i = 0; i < 5 ; i++) {   // (초기화; 조건식; 증감식)
            System.out.println("for loop i = " + i); //수행될 문장
        }
        System.out.println("i = " + i); // for문을 빠져나왔을 때, i 값
                
        for(i = 1; i <= 10 ; i++) {
            System.out.println("for loop i = " + i);
        }
        System.out.println("i = " + i);
        
        for (i = 0; i < 10; i = i + 2) {
            System.out.println("for loop i = " + i);
        }
        System.out.println("i = " + i);
        
        for (i = 10; i > 0; i--) {
            System.out.println("for loop i = " + i);
        }
        
        /*
        무한 loop를 조심하자
        for (i = 0;  ; i++) {
            System.out.println("for loop i = " + i);
        }
        */
        
        // for문 안에서만 사용할 수 있는 변수 선언 및 사용
        for(int j = 0; j < 10; j++) {
            System.out.println("for loop j = " + j);
        }
        
        // 2중 for
        //  n = 0 1 2 3 4 일 때, 각각!! k = 0 1 2 실행 
        for (int n = 0; n < 5; n++) {           // n = 0 1 2 3 4
            System.out.println("for n = " + n);
            
            for(int k = 0; k < 3; k++) {        // k = 0 1 2
                System.out.println("\tfor k = " + k);
            }
        }
        
        // for + if + array
        
        int[] array = {24568};
        
        for(i = 0; i < array.length ; i++) {
            System.out.println(array[i]);
        }
        
        for(i = 0; i < array.length; i++) {
            if(array[i] == 6) {
                System.out.println("6을 찾았습니다.");
            }
        }
        
        for(i = 0; i < array.length; i++) {
            if(array[i] % 2 == 1) {     //홀수 표현
                System.out.println("홀수가 있다 " + array[i] + "입니다");
            }
        }
        
        for(i = 0; i < array.length; i++) {
            if(array[i] % 2 == 0) {      //짝수 표현
                System.out.println("짝수가 있다 " + array[i] + "입니다");
            }
        }
        
    }
}
 
 
cs

Theme. while문

while문은 조건식이 참(true)인 동안, 즉 조건식이 거짓이 될 때까지 블럭 { }내의 문장을 반복한다. 

 

먼저 기본적인 while문을 보자.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package test;
 
public class MainClass {
    public static void main(String[] args) {
    
        int w;
        w = 0;   // 초기화
        while(w < 5) {      // 조건식
            System.out.println("while loop " + w);   // 처리
            w++// 증감식
        }
        
    }
}
 
 
cs

결과는 다음과 같다.

< Console >

 

형식을 보면 다음과 같다.

 

1
2
3
4
5
    초기화
While (조건식) {
            조건식의 연산결과가 참(true)인 동안, 반복될 문장들을 적는다.
            증감식
    }
 
cs
 
 

for문에 비해 while문은 구조가 간단하다.

for문과 while문을 비교해보자. (같은 결과가 나오도록 하는 코드를 비교)

 

Theme. 이중 for문과 이중 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
package test;
 
public class MainClass {
    public static void main(String[] args) {
    
        // 이중 for문 vs 이중 while문
        // 이중 for문
        
        for(int i = 0; i < 5; i++) {
            System.out.println("i = " + i);
            for(int j = 0; j < 3; j++) {
                System.out.println("\tj = " + j);
            }
        }
        
        // 이중 while문
        
        int w1, w2;
        w1 = 0;
        while(w1 < 5) {
                System.out.println("w1 = "+ w1);
                w2 = 0;
                while(w2 < 3) {
                    System.out.println("\tw2 = "+ w2);
                    w2++;
                }
                w1++;    
        }
                
        
    }
}
 
 
cs

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
36
37
38
39
40
41
42
43
44
45
46
47
48
package test;
 
public class MainClass {
    public static void main(String[] args) {
    
        // array + while 
        
        int[] arr = { 1,2,3,4,5,6,7,8,9,10};
        
        int a;
        a = 0;
        while(a < arr.length) {
            System.out.println(arr[a]);
            a++;
        }
        
        a = 0;
        while(a < arr.length) {
            
            if(arr[a] == 5) {
                System.out.println("5을 찾았습니다.");
            }
            a++;    
        }
        
        a = 0;
        while(a < arr.length) {
            if (arr[a] % 2 == 1) {
                System.out.print(arr[a]);
            }
            a++;
        }
        
        System.out.println();
        
        a = 0;
        while(a < arr.length) {
            if (arr[a] % 2 == 0) {
                System.out.print(arr[a]);
            }
            a++;
        }                
                
        
    }
}
 
 
cs

 

Theme. do - while문

 

do-while문은 기본적인 구조가 while문과 같지만, 조건식과 블럭 { }의 순서를 바꿔놓은 것이다.

그래서 while문과 반대로 블럭 { }을 먼저 수행한 후에 조건식을 평가한다.

while문은 조건식의 결과에 따라 블럭 { }이 한번도 수행되지 않을 수 있지만,

do-while문은 최소한 한번은 수행될 것을 보장한다.

 

형식부터 살펴보자

 

1
2
3
4
5
6
    초기화
    do {
        조건식의 연산결과가 참일 때 수행될 문장들을 적는다.
        증감식
    } while (조건식);
 
cs

간단한 코드를 작성해보면,

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package test;
 
public class MainClass {
    public static void main(String[] args) {
    
        int w;
        w = 0;
        do {
            System.out.println("do while = " + w);
            w++;
        } while(w < 5);  
                
    }
}
 
 
cs

 

끝.

'Java' 카테고리의 다른 글

함수 사용  (4) 2022.12.26
break, continue  (0) 2022.12.23
조건문 - if, switch  (0) 2022.12.22
형변환  (0) 2022.12.21
화면에서 입력받기 - Scanner  (0) 2022.12.20

+ Recent posts