입력한 두 정수 사이의 구구단 출력하기
Scanner sc = new Scanner(System.in);
Scanner 클래스를 이용하여 키보드 값을 입력받도록 하였고, while(true) 무한 루프문을 이용하여 입력받은 값이 조건에 만족하지 않으면 예외 메시지 출력 후 계속 루프문을 돌며 값을 다시 입력받도록 하였다.
입력값 조건은
1. 두 개의 값을 입력해야 하고,
2. 두 값 모두 정수(int)여야 하며,
3. 두 값 모두 2 이상 9 이하의 수여야 한다.
import java.util.Scanner;
public class Gugudan {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] stringSplit;
int min = 0;
int max = 0;
while(true)
{
System.out.println("시작 단과 끝 단, 두 개의 정수를 입력해주세요. 예) 3 5");
System.out.print("입력: ");
stringSplit = sc.nextLine().trim().split("\\s+"); // 공백으로 문자열 자르기
try
{
/* 1. 입력 값이 2개가 아닌 경우 */
if(stringSplit.length != 2)
{
throw new Exception("두 개의 값을 입력해야합니다. 다시 입력하세요.\n"); // 예외 던지기
}
/* 2. 입력 값이 2개인 경우 */
try
{
// 두 값 중 작은 값을 min, 큰 값을 max iv에 저장
min = Math.min(Integer.parseInt(stringSplit[0]), Integer.parseInt(stringSplit[1]));
max = Math.max(Integer.parseInt(stringSplit[0]), Integer.parseInt(stringSplit[1]));
}
catch(NumberFormatException e) // 정수로 변환 안 될 경우 예외 처리
{
System.out.println("숫자만 입력 가능합니다.\n");
continue; // 예외 처리 후 다시 무한 루프문으로 이동
}
// 2-1. 입력값이 2개이고, 두 값 모두 2에서 9사이가 아닌 경우
if (!(1< min && min <= 9 && 1<max && max <= 9))
throw new Exception("2에서 9 사이의 값만 입력 가능합니다. 다시 입력하세요.\n"); // 예외 던지기
// 2-2. 조건 모두 충족, 무한 루프 빠져 나가기
break;
}
catch(Exception e)
{
System.out.println(e.getMessage());
continue; // 예외 처리 후 다시 무한 루프문으로 이동
}
}// end of while(true)
for (int i = min; i <= max; i++) // min단 부터 max단까지 구구단 출력
{
for (int j = 1; j <= 9; j++)
System.out.printf("%d * %d = %d%n", i, j, i*j);
System.out.println();
}
sc.close(); // Scanner 종료
System.out.println("프로그램 종료.");
}// main()
}
* 한글 윈도우에서는 백슬래시(\)가 원화(₩) 기호로 나타남.
출력 결과
시작 단과 끝 단, 두 개의 정수를 입력해주세요. 예) 3 5
입력: 3
두 개의 값을 입력해야합니다. 다시 입력하세요.
시작 단과 끝 단, 두 개의 정수를 입력해주세요. 예) 3 5
입력: 54
두 개의 값을 입력해야합니다. 다시 입력하세요.
시작 단과 끝 단, 두 개의 정수를 입력해주세요. 예) 3 5
입력: 1 9
2에서 9 사이의 값만 입력 가능합니다. 다시 입력하세요.
시작 단과 끝 단, 두 개의 정수를 입력해주세요. 예) 3 5
입력: 3 w
숫자만 입력 가능합니다.
시작 단과 끝 단, 두 개의 정수를 입력해주세요. 예) 3 5
입력: 3 ㄱ
숫자만 입력 가능합니다.
시작 단과 끝 단, 두 개의 정수를 입력해주세요. 예) 3 5
입력: 2 3
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
프로그램 종료.
'프로그래밍 > Java, Spring' 카테고리의 다른 글
[Java] Eclipse debugger 사용법 및 단축키 (0) | 2024.05.26 |
---|---|
[Spring] 코딩 폰트(나눔고딕 코딩, D2 Coding) 다운로드 & STS/Eclipse 폰트 적용 (1) | 2023.10.11 |
[Spring] Java 소스 수정 시 톰캣 자동 재시작 해제 방법 (0) | 2023.02.12 |
[Java] 기본형과 문자열 간 변환 (기본형 ↔ String) (0) | 2022.04.28 |