▶ JAVA/개념정리

[Java] 7. 반복문

휴학생감자 2022. 2. 3. 13:00

반복문 (for문, while문, do-while문)

 

어떠한 작업을 반복적으로 수행해야 할 때 사용한다.

 

★★★

※ break문 : 자신이 포함된 가장 가까운 반복문을 벗어난다.

                무한 반복문에서 프로그램 종료를 위해 자주 사용된다.

 

※ continue문 : 반복문의 끝으로 이동하여 다음 반복으로 넘어가도록 한다.

                    for문에서 사용 시, 증감식으로 이동

                    while문, do-while문에서 사용 시, 조건식으로 이동

 

→ break문과 continue문 모두 반복문에서만 사용 가능하다!!

 

 

 for문

작업의 반복 횟수를 알고있을 때 적합하다.

초기화, 조건식, 증감식, 블럭으로 이루어져 있다.

 

# 초기화 : 반복문에서 사용할 변수를 초기화하는 부분으로 처음 한번만 수행한다.

                   두개 이상의 변수(동일한 타입)가 필요한 경우 콤마(,)로 구분하여 나타낸다.

# 조건식 : 반복을 결정하는 식으로, 이 값이 참이면 반복을 계속하고, 거짓이면 반복을 중단한다.

# 증감식 : 반복문을 제어하는 변수의 값을 증가 or 감소시킨다.

 

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

        for (int i=0; i<10; i++){
            sum += i;
            System.out.println(sum);
        }
    }
}

[실행 결과]

 

 

★ 중첩된 for문

import java.util.Scanner;

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

        System.out.print("줄의 수를 입력하세요 : ");
        Scanner scan = new Scanner(System.in);

        line = scan.nextInt();

        for(int i=0; i<line; i++){
            for(int j=0; j<=i; j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

[실행 결과]

 

 

★ 향상된 for문

배열과 컬렉션에 저장된 요소들을 하나씩 순서대로 읽어온다.

public class exCode {
    public static void main(String[] args) {
        int[] array = {2, 4, 6, 8, 10};
        
        for(int num : array){
            System.out.printf("%d%n", num);
        }
    }
}

[실행 결과]

 

 


 while

조건식과 블럭으로만 이루어져 있으며, 조건식이 거짓이 되면 조건문을 벗어난다.

for문과 서로 변환이 가능하다는 특징이 있으며, for문에 비해 조금 더 간결하게 표현이 가능하다.

 

※ for문과 달리 while문의 조건식은 생략 불가함!

 

import java.util.Scanner;

public class exCode {
    public static void main(String[] args) {
        // while문 예제 : 각 자리 숫자의 합을 구하기
        int userNum = 0;
        int sum = 0;

        System.out.print("숫자를 입력하세요 : ");

        Scanner scan = new Scanner(System.in);
        userNum = scan.nextInt();

        while (userNum!=0){
            sum += userNum%10;
            userNum /= 10;
        }

        System.out.printf("각 자리 숫자의 합은 %d이다.", sum);
    }
}

[실행 결과]

 

 


③ do-while문

while문과 실행하는 구조는 같으나 순서만 거꾸로 되어있다.

블럭 내 문장들을 먼저 수행한 후에 조건식을 평가한다.

 

for문과 while문은 블럭이 한 번도 수행되지 않을 수 있지만, do-while문은 반드시 한 번은 수행한다.

 

import java.util.Scanner;

public class exCode {
    public static void main(String[] args) {
        // do-while문 예제 : 임의의 수를 사용자가 맞추기

        int user = 0;
        int answer = 0;

        answer = (int)(Math.random()*50) + 1; // 1~50 사이 임의의 수를 저장

        Scanner scan = new Scanner(System.in);

        do {
            System.out.print("1~50 사이의 정수 중 하나를 입력하세요 : ");
            user = scan.nextInt();

            if(user>answer){
                System.out.printf("%d보다 작은 수 입니다.%n", user);
            } else if(user<answer){
                System.out.printf("%d보다 큰 수 입니다.%n", user);
            }
        } while (user!=answer);

        System.out.println("정답입니다!");
    }
}

[실행 결과]

 

 

 

 

 

 

'▶ JAVA > 개념정리' 카테고리의 다른 글

[Java] 9. 배열_예제  (0) 2022.02.07
[Java] 8. 배열  (0) 2022.02.04
[Java] 6. 조건문  (0) 2022.02.02
[Java] 5. 연산자(2)  (0) 2022.01.28
[Java] 4. 연산자(1)  (0) 2022.01.27