정올-Beginner-도형만들기1-구구단 #1291

Titanium·2025년 1월 9일

JUNGOL

목록 보기
1/3
post-thumbnail

import java.util.Scanner;

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

        while (true) {
            int a = in.nextInt(), b = in.nextInt();
            if (!valid(a, b)) {
                System.out.println("INPUT ERROR!");
                continue;
            }
            gugudan(a, b);
            break;
        }

        in.close();
    }

    public static boolean valid(int a, int b) {
        return a >= 2 && a <= 9 && b >= 2 && b <= 9;
    }

    public static void gugudan(int a, int b) {
        int step = (a <= b) ? 1 : -1;

        for (int i = 1; i <= 9; i++) {
            for (int j = a; j != b + step; j += step) {
                System.out.printf("%d * %d = %2d", j, i, j * i);
                if (j != b) System.out.print("   ");
            }
            System.out.println();
        }
    }
}
코드를 입력하세요

입력: 시작 범위와 끝 범위 (2~9 사이의 정수).
출력: 해당 구간의 구구단, 단 사이 공백 정렬.
제약조건: 유효하지 않은 입력은 "INPUT ERROR!" 출력.

설계

1.사용자로부터 두 정수를 입력받음.
입력값이 유효하지 않으면 오류 메시지를 출력하고 재입력.

2.구간 처리:
시작값과 끝값을 비교하여 오름차순 또는 내림차순으로 처리.

3.출력 포맷:
printf를 사용해 형식을 통일.
단 사이에 일정한 간격 추가.


코드 설명

1. 입력 처리 부분

while (true) {
    int a = in.nextInt(), b = in.nextInt(); // 시작값(a)과 끝값(b)을 입력받음
    if (!valid(a, b)) { // 입력값 검증
        System.out.println("INPUT ERROR!");
        continue; // 잘못된 입력이면 다시 입력받음
    }
    gugudan(a, b); // 입력이 올바르면 구구단 출력
    break; // 출력 후 반복 종료
}

기능:

사용자로부터 시작값(a)과 끝값(b)을 입력받음.
valid(a, b) 메서드를 통해 입력값의 유효성을 검증:
범위가 2~9 사이에 있는지 확인.
입력값이 유효하지 않으면 "INPUT ERROR!"를 출력하고, 다시 입력받음.
입력값이 올바르면 gugudan(a, b) 메서드를 호출하여 구구단 출력.


  1. 입력값 검증 메서드
public static boolean valid(int a, int b) {
    return a >= 2 && a <= 9 && b >= 2 && b <= 9; // a와 b가 모두 2~9 사이인지 확인
}

기능:
입력값 a와 b가 2 이상 9 이하인지 확인.
조건을 만족하면 true, 그렇지 않으면 false 반환.

profile
핵심먼저

0개의 댓글