반복문

제민·2024년 7월 2일

Java 개념 공부

목록 보기
6/21
post-thumbnail

반복문 (Loop Statements)

프로그램 흐름을 제어하는 제어문 중 하나인 반복문은 특정 실행 코드를 반복적으로 수행시키는 기능을 합니다. 자바에서는 반복문을 통해 코드의 효율성을 높일 수 있으며, 크게 두 종류의 반복문이 있습니다: for 문과 while 문 (및 do-while 문).

1. for문

for 문은 반복 횟수가 정해져 있을 때 주로 사용됩니다. 기본적인 형태는 다음과 같습니다:

for (초기식; 조건식; 증감식) {
    // 반복적으로 실행시키고자 하는 코드 블럭
}
  • 초기식: 반복문이 시작될 때 처음에 단 한 번 실행되는 구문입니다. 반복문에서 사용할 변수를 선언 및 초기화합니다.
  • 조건식: 반복문이 계속 실행될 조건을 지정합니다. 조건식이 true일 때 반복을 실행하고, false일 때 반복문을 종료합니다.
  • 증감식: 반복문을 제어하는 변수의 값을 증감시키는 구문입니다.

Tip!
for 문 안에서 초기식, 조건식, 증감식 각각 생략 가능하지만, 대부분의 경우 생략하지 않고 사용합니다. 생략할 경우 while 문을 사용하는 것이 일반적입니다.

예제 1: 기본적인 for문 사용

// 10번 반복하는 예제
for (int i = 0; i < 10; i++) {
    System.out.println("안녕하세요" + i);
}
// 1부터 5까지 출력하는 예제
for (int i = 1; i <= 5; i++) {
    System.out.print(i + " ");
}

2. while문

while 문은 조건식이 true일 동안 반복을 실행합니다. 기본적인 형태는 다음과 같습니다:

[초기식;]
while (조건식) { 
    // 반복적으로 실행시키고자 하는 코드 블럭
    [증감식 or 분기문];
}

예제 2: while문 사용

import java.util.Scanner;

public class B_while {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // 사용자가 0을 입력할 때까지 반복해서 숫자를 입력받아 그대로 출력하는 예제
        while (true) {
            int n = sc.nextInt();
            if (n == 0) {
                break;
            } else {
                System.out.println(n);
            }
        }

        // 1에서부터 10000 사이의 홀수만을 출력하는 예제
        int i = 1;
        while (i <= 10000) {
            if (i % 2 == 1) {
                System.out.println(i);
            }
            i++;
        }

        // 1부터 랜덤값(1~100) 사이의 합계 구하는 예제
        int sum = 0;
        int num = (int) (Math.random() * 100) + 1;
        i = 1;
        while (i <= num) {
            sum += i;
            i++;
        }
        System.out.println("1부터 " + num + "까지의 합: " + sum);

        // 사용자가 입력한 문자열의 짝수 자리 글자만 출력하는 예제
        System.out.print("문자열 입력: ");
        String str = sc.next();
        i = 1;
        while (i < str.length()) {
            System.out.println(str.charAt(i));
            i += 2;
        }
    }
}

3. do-while문

do-while 문은 처음에 무조건 실행 코드를 한 번 실행하고 조건문을 검사하는 반복문입니다. 기존의 for / while 문과의 차이점은 첫 실행 시 조건 검사 없이 무조건 실행한다는 점입니다.

do {
    // 실행할 코드 블럭
} while (조건식);

예제 3: do-while문 사용

import java.util.Scanner;

public class C_do_while {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // 사용자가 입력한 수를 계속해서 더하는 프로그램. 단, 사용자가 0을 입력하면 종료
        int num;
        int sum = 0;
        System.out.println("숫자 입력:");

        do {
            num = sc.nextInt();
            sum += num;
        } while (num != 0);

        System.out.println("합: " + sum);
    }
}

4. break문

break 문은 반복문이나 switch 문 안에서 사용되는 분기문으로, break가 실행되는 순간 현재 속해 있는 가장 가까운 반복문 또는 switch 문을 강제로 탈출합니다.

예제 4: break문 사용

import java.util.Scanner;

public class D_break {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // 랜덤값(1~100) 발생시키고 그 랜덤값을 출력해보기
        // 단, 발생한 값이 3의 배수(3으로 나누면 0)일 경우 반복문 종료
        while (true) {
            int num = (int) (Math.random() * 100) + 1;
            System.out.println(num);
            if (num % 3 == 0) {
                break;
            }
        }

        // 사용자에게 문자열을 입력받아 해당 문자열의 길이를 출력(과정 반복)
        // 단, 사용자가 입력한 문자열이 "exit"일 경우 반복문을 탈출
        String str;
        while (true) {
            System.out.print("영어 문자 입력: ");
            str = sc.next();
            if (str.equals("exit")) {
                break;
            }
            System.out.println(str.length());
        }
        sc.close();
    }
}

5. continue문

continue 문은 반복문 안에서 사용되는 구문으로, continue가 실행되면 해당 반복문의 나머지 코드를 실행하지 않고 곧바로 다시 반복문의 상단으로 이동합니다.

예제 5: continue문 사용

import java.util.Scanner;

public class E_continue {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // 1부터 100까지의 총 합계
        // 단, 6의 배수값은 빼고
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            if (i % 6 == 0) {
                continue;
            }
            sum += i;
        }
        System.out.println("1부터 100까지 수 중, 6의 배수값은 뺀 총합: " + sum);

        int i = 0;
        while (true) {
            if (i < 10) {
                i++;
                continue;
            }
            break;
        }
    }
}
profile
초보부터 시작하는 개발자 생활

0개의 댓글