공공부하자개발 · 영어 학습 노트
자바
초급자바의 뼈대0/8 완료
  • 00개발 환경과 첫 프로그램
  • 01변수, 데이터 타입, 형변환
  • 02연산자와 제어문
  • 031차원 · 2차원 배열
  • 04클래스, 객체, 생성자, 오버로딩
  • 05접근 제어자와 캡슐화
  • 06메서드 활용 패턴 (초급)
  • 07enum, 패키지와 import, static 과 final
사이트 소개개인정보처리방침연락처
© 2026 공부하자
홈 › 초급 › 02 / 8

연산자와 제어문

섹션 7진행 0 / 8
1왜 배우는가2핵심 원리3코드 예제4응용 변형 예제5자주 하는 실수 (Tip)6연습 문제7정리‹ 이전다음 ›

6. 연습 문제

문제 1

1부터 100까지 중 3의 배수이면 "Fizz", 5의 배수이면 "Buzz", 둘 다이면 "FizzBuzz", 아니면 숫자를 출력하되, 한 줄에 10개씩 공백으로 구분해 출력하세요. (힌트: % 와 삼항/if, i % 10 == 0에서 줄바꿈)

정답 보기
java
public class Exercise1 {
    public static void main(String[] args) {
        for (int i = 1; i <= 100; i++) {
            String out;
            if (i % 15 == 0) out = "FizzBuzz";      // 3과 5의 공배수 = 15의 배수. 먼저 검사!
            else if (i % 3 == 0) out = "Fizz";
            else if (i % 5 == 0) out = "Buzz";
            else out = String.valueOf(i);

            System.out.print(out + (i % 10 == 0 ? "\n" : " "));
        }
        // 출력: 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz
        // 출력: 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz
        // ... (10줄)
    }
}

문제 2

월(112)을 받아 switch 표현식으로 계절을 반환하는 메서드 season(int month)를 작성하세요. 35 봄, 68 여름, 911 가을, 12·1·2 겨울, 그 외는 IllegalArgumentException을 던지세요.

정답 보기
java
public class Exercise2 {
    static String season(int month) {
        return switch (month) {
            case 3, 4, 5 -> "봄";
            case 6, 7, 8 -> "여름";
            case 9, 10, 11 -> "가을";
            case 12, 1, 2 -> "겨울";
            default -> throw new IllegalArgumentException("잘못된 월: " + month);
        };
    }

    public static void main(String[] args) {
        System.out.println(season(4));     // 출력: 봄
        System.out.println(season(12));    // 출력: 겨울
        try {
            season(13);
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());   // 출력: 잘못된 월: 13
        }
    }
}

문제 3

구구단을 2단부터 9단까지 출력하되, 각 단에서 결과가 30을 넘는 순간 그 단을 중단하고 다음 단으로 넘어가세요. 또한 결과가 홀수인 줄은 출력하지 마세요. (힌트: continue, break)

정답 보기
java
public class Exercise3 {
    public static void main(String[] args) {
        for (int dan = 2; dan <= 9; dan++) {
            for (int i = 1; i <= 9; i++) {
                int result = dan * i;
                if (result > 30) break;          // 안쪽 for만 탈출 → 다음 단
                if (result % 2 != 0) continue;   // 홀수 건너뜀
                System.out.println(dan + " x " + i + " = " + result);
            }
            System.out.println("--- " + dan + "단 끝 ---");
        }
        // 출력: 2 x 1 = 2
        // 출력: 2 x 2 = 4
        // ... 2 x 9 = 18
        // 출력: --- 2단 끝 ---
        // 출력: 3 x 2 = 6
        // ... (3단은 3x9=27까지, 짝수만)
        // 출력: 9 x 2 = 18
        // 출력: --- 9단 끝 ---   (9x4=36 > 30 에서 중단)
    }
}
연습 문제
  • 문제 1
  • 문제 2
  • 문제 3
이전 섹션5 자주 하는 실수 (Tip)6 / 7다음 섹션7 정리