IMCAT.DEV
로그인 가입
Java 입문 문법

Java 반복문 (for, while)

Java 반복문 (for, while) — 초급

반복문 (for, while)

1. 도입 (왜 배워야 하는가)

프로그래밍에서 반복문은 동일한 작업을 여러 번 수행할 수 있게 해주는 중요한 도구입니다. 실무에서는 데이터 처리, 사용자 입력 처리, 게임 개발 등 다양한 상황에서 반복문이 필요합니다. 예를 들어, 쇼핑몰 애플리케이션에서 사용자가 장바구니에 담은 상품의 총합을 계산할 때 반복문이 없다면, 각각의 상품에 대해 수작업으로 계산해야 하므로 비효율적이고 오류가 발생할 확률이 높습니다. 반복문을 활용하지 않으면 코드가 길어지고 가독성이 떨어지며, 유지보수 또한 어려워집니다.

2. 핵심 개념 설명

반복문 정의

반복문은 특정 조건이 참인 동안 블록의 코드를 반복해서 실행하는 구조입니다. 주로 for문과 while문이 사용됩니다.

실생활 비유

반복문을 요리 과정에 비유할 수 있습니다. 예를 들어, 쿠키를 만들 때, 반죽을 12개로 나누어 구워야 한다면, "반죽을 하나씩 꺼내서 구운다"는 반복적인 작업을 생각할 수 있습니다. 이때 반복문은 "반죽이 남아있는 동안 계속 꺼내서 굽는다"라는 조건을 설정하는 것입니다.

용어설명
for초기값, 조건식, 증감식을 사용하여 반복하는 구조
while조건식이 참인 동안 반복하는 구조
do while최소한 한 번은 실행 후 조건을 검사하여 반복하는 구조

3. 기본 코드 예제

for 문 예제

public class ForLoopExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            System.out.println("안녕하세요, " + i + "번째 인사입니다.");
        }
    }
}

실행 결과

안녕하세요, 1번째 인사입니다.
안녕하세요, 2번째 인사입니다.
안녕하세요, 3번째 인사입니다.
안녕하세요, 4번째 인사입니다.
안녕하세요, 5번째 인사입니다.
  • for (int i = 1; i <= 5; i++) : i를 1부터 5까지 증가시키며 반복합니다.
  • System.out.println(...) : 각 반복마다 인사 메시지를 출력합니다.
  • while 문 예제

    public class WhileLoopExample {
        public static void main(String[] args) {
            int i = 1;
            while (i <= 5) {
                System.out.println("안녕하세요, " + i + "번째 인사입니다.");
                i++; // i를 1씩 증가시킵니다.
            }
        }
    }

    실행 결과

    안녕하세요, 1번째 인사입니다.
    안녕하세요, 2번째 인사입니다.
    안녕하세요, 3번째 인사입니다.
    안녕하세요, 4번째 인사입니다.
    안녕하세요, 5번째 인사입니다.
  • int i = 1; : i를 1로 초기화합니다.
  • while (i <= 5) : i가 5 이하인 동안 반복합니다.
  • i++; : 매 반복마다 i를 1씩 증가시킵니다.
  • 4. 실전 활용 예제

    1. 장바구니 총합 계산

    쇼핑몰에서 장바구니에 담긴 상품의 가격을 모두 더하는 경우입니다.

    public class ShoppingCart {
        public static void main(String[] args) {
            double[] prices = {10.99, 20.50, 5.99, 15.00};
            double total = 0;
    
            for (double price : prices) {
                total += price; // 각 가격을 총합에 더합니다.
            }
    
            System.out.println("총 장바구니 금액: " + total);
        }
    }

    상황 설명: 장바구니에 담긴 상품의 가격을 배열로 관리하고, 반복문으로 총합을 계산합니다.

    2. 사용자 입력 처리

    사용자가 입력한 숫자들의 합을 구하는 예제입니다.

    import java.util.Scanner;
    
    public class UserInputSum {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int sum = 0;
            int number;
    
            System.out.println("5개의 숫자를 입력하세요:");
            for (int i = 0; i < 5; i++) {
                number = scanner.nextInt(); // 사용자 입력
                sum += number; // 입력받은 숫자를 총합에 더합니다.
            }
    
            System.out.println("입력한 숫자의 총합: " + sum);
        }
    }

    상황 설명: 사용자가 입력한 5개의 숫자를 반복문으로 처리해 총합을 계산합니다.

    5. 흔한 실수와 주의사항

    1. 무한 루프

    while (true) {
        System.out.println("이 메시지는 계속 출력됩니다."); // 조건이 없으므로 무한히 반복됩니다.
    }

    올바른 코드

    int count = 0;
    while (count < 5) {
        System.out.println("안녕하세요");
        count++; // 조건을 충족시키기 위해 count를 증가시킵니다.
    }

    2. 인덱스 초과

    int[] numbers = {1, 2, 3};
    for (int i = 0; i <= numbers.length; i++) { // i <= numbers.length는 인덱스 초과를 발생시킵니다.
        System.out.println(numbers[i]);
    }

    올바른 코드

    for (int i = 0; i < numbers.length; i++) { // i < numbers.length로 수정하여 인덱스 초과를 방지합니다.
        System.out.println(numbers[i]);
    }

    6. 정리

  • 반복문(for, while)은 특정 조건이 참인 동안 코드를 반복 실행합니다.
  • 실무에서 반복문은 데이터 처리, 사용자 입력 처리 등 다양한 상황에서 필수적입니다.
  • 올바른 조건 설정이 중요하며, 무한 루프와 인덱스 초과를 주의해야 합니다.

다음에 학습하면 좋은 주제는 배열(Array), 컬렉션(Collection) 및 메서드(Method)입니다. 이들 주제를 통해 데이터를 효율적으로 관리하고, 코드의 재사용성을 높일 수 있습니다.