백엔드/Java

[Java]#9 반복문 For

쁘띠뀨띠 2023. 12. 14. 19:02

1_For문

- 기본 형태

package loop;

public class For {
    public static void main(String[] args) {
        for (초기식; 조건식 ; 증감식){
//            실행코드
        }
    }
}

- 초기식이 실행된다. 주로 반복 횟수와 관련된 변수를 선언하고 초기화 할 때 사용한다.

- 조건식을 검증한다. 참이면 코드를 실행하고, 거짓이면 for문을 빠져나간다.

- 코드를 실행한다.

- 코드가 종료되면 증감식을 실행한다. 주로 초기식에 넣은 반복 횟수와 관련된 변수의 값을 증가할 때 사용한다.

- 다시 조건식부터 시작한다.

 

*초기식, 조건식, 증감식 생략 가능. 무한반복, 단 (;)유지해야 한다. 

 

예)

package loop;

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

- 초기식 실행 int i = 1

- 조건식 검증 i <= 10 // 1<=10

- 조건식이 참이면 코드 실행 System.out.prinln(i); // 1

- 코드가 종료되면 증감식 실행 i++ // 2

- 다시 조건식을 검증 i <=10 // 2<=10

- 무한 반복 후 i <= 10의 조건이 거짓이 되면 for문을 빠져나간다.

 

*문제 : i부터 하나씩 증가하는 수를 endNum까지 더해라

package loop;

public class For1 {
    public static void main(String[] args) {
        int sum = 0;
        int endNum = 3;

        for (int i = 1; i <= endNum; i++){
            sum = sum + i;
            System.out.println("i = " + i + " sum = " + sum);
        }
//        i = 1 sum = 1
//        i = 2 sum = 3
//        i = 3 sum = 6
    }
}

 

*문제 : 1부터 시작해서 숫자를 계속 누적해서 더하다가 합계가 10보다 큰 처음 값은?

package loop;

public class Break1 {
    public static void main(String[] args) {
        int sum = 0;
        int i = 1;

        for(;;){
            sum = sum + i;
            if (sum > 10){
                System.out.println("합이 10보다 크면 종료 : i = " + i + " sum = " + sum);
                break;
            }
            i++;
        }
//        합이 10보다 크면 종료 : i = 5 sum = 15
    }
}
package loop;

public class Break2 {
    public static void main(String[] args) {
        int sum = 0;

        for(int i = 1 ; ; i++){
            sum = sum + i;
            if (sum > 10){
                System.out.println("합이 10보다 크면 종료 : i = " + i + " sum = " + sum);
                break;
            }
        }
//        합이 10보다 크면 종료 : i = 5 sum = 15
    }
}

 

2_중첩 반복문

package loop;

public class Nested1 {
    public static void main(String[] args) {
        for (int i = 0; i < 2; i++) {
            System.out.println("외부 for시작");
            for (int j = 0; j < 3; j++) {
                System.out.println("내부 for" + i + "-" + j);
            }
            System.out.println("외부 for 종료 i:" + i);
            System.out.println();
        }
//        외부 for시작
//        내부 for0-0
//        내부 for0-1
//        내부 for0-2
//        외부 for 종료 i:0
//
//        외부 for시작
//        내부 for1-0
//        내부 for1-1
//        내부 for1-2
//        외부 for 종료 i:1
    }
}