자바에서의 중첩 반복문 구현 및 활용

중첩 반복문의 기본 개념

한 반복문을 다른 반복문 내부에 포함시키면 중첩 반복문이 형성됩니다. for, while, do-while 등 다양한 반복문 구조를 외부와 내부 루프로 조합할 수 있으며, 일반적으로 두 단계까지 사용하는 것이 가독성 측면에서 바람직합니다. 세 단계 이상의 중첩은 코드 유지보수에 부정적인 영향을 미칠 수 있습니다.

동작 원리

내부 반복문은 외부 반복문의 한 번의 실행 단위로 간주됩니다. 즉, 내부 반복문의 조건이 false가 되어야 비로소 외부 반복문이 다음 반복으로 진행됩니다. 따라서 외부 반복 횟수를 m, 내부 반복 횟수를 n이라 하면, 내부 블록은 총 m × n번 실행됩니다.

예제: 성적 처리 시스템

세 개의 반, 각 반 5명의 학생에 대한 성적 입력과 평균 계산, 그리고 합격 인원 통계를 구하는 프로그램입니다.

import java.util.Scanner;

public class GradeAnalyzer {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int numClasses = 3;
        int studentsPerClass = 5;
        double totalAllScores = 0;
        int passedCount = 0;

        for (int classIdx = 1; classIdx <= numClasses; classIdx++) {
            System.out.println("[" + classIdx + "반] 학생 성적을 입력하세요.");
            double classTotal = 0;

            for (int studentIdx = 1; studentIdx <= studentsPerClass; studentIdx++) {
                System.out.print("학생 " + studentIdx + "의 점수: ");
                double score = input.nextDouble();

                if (score >= 60) {
                    passedCount++;
                }
                classTotal += score;
            }

            double avgClassScore = classTotal / studentsPerClass;
            System.out.printf("반 %d 평균 점수: %.2f%n", classIdx, avgClassScore);
            totalAllScores += classTotal;
        }

        double overallAverage = totalAllScores / (numClasses * studentsPerClass);
        System.out.printf("전체 평균 점수: %.2f%n", overallAverage);
        System.out.println("합격자 수: " + passedCount + "명");
    }
}

예제: 구구단 출력

9×9 구구단을 중첩 반복문으로 출력하는 예제입니다. 각 행은 현재 숫자까지의 곱을 출력하며, 줄바꿈을 통해 형태를 정렬합니다.

for (int multiplier = 1; multiplier <= 9; multiplier++) {
    for (int factor = 1; factor <= multiplier; factor++) {
        System.out.printf("%d×%d=%d\t", multiplier, factor, multiplier * factor);
    }
    System.out.println(); // 다음 줄로 이동
}

태그: 자바 중첩 반복문 구구단 성적 분석 반복문 로직

6월 10일 23:31에 게시됨