
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를 사용해 형식을 통일.
단 사이에 일정한 간격 추가.
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) 메서드를 호출하여 구구단 출력.
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 반환.