티스토리 뷰
728x90
반응형
[8-7] 다음은 1~100사이의 숫자를 맞추는 게임을 실행하던 도중에 숫자가 아닌 영문자를 넣어서 발생한 예외이다. 예외처리를 해서 숫자가 아닌 값을 입력했을 때는 다시 입력을 받도록 보완하라.
public class Ex8_7 {
public static void main(String[] args) {
int answer = (int) (Math.random()*100)+1;
int input =0;
int count =0;
do {
count++;
System.out.println("1과 100사이의 값을 입력해라");
input = new Scanner(System.in).nextInt();
if(answer > input) {
System.out.println("더 큰수를 입력해라 : "+input);
} else if (answer < input) {
System.out.println("더 작은수를 입력해라 : "+input);
} else {
System.out.println("맞췄다");
System.out.println("시도횟수는"+count+"번이다");
break;
}
} while(true);
}
}
풀이
1) try-catch문으로 예외 처리
try {
input = new Scanner(System.in).nextInt();}
catch (Exception e) {
System.out.println("글자말고 숫자로 다시 입력해라");
continue; //중요!
}
정답
package pkg1;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Ex8_7 {
public static void main(String[] args) {
int answer = (int) (Math.random()*100)+1;
int input =0;
int count =0;
do {
count++;
System.out.println("1과 100사이의 값을 입력해라");
try {
// Scanner sc = new Scanner(System.in);
// input = sc.nextInt(); } // 이렇게도 가능
input = new Scanner(System.in).nextInt();}
catch (InputMismatchException e) { //Exception e 도 가능
System.out.println("글자말고 숫자로 다시 입력해라");
continue; //중요!
}
if(answer > input) {
System.out.println("더 큰수를 입력해라 : "+input);
} else if (answer < input) {
System.out.println("더 작은수를 입력해라 : "+input);
} else {
System.out.println("맞췄다");
System.out.println("시도횟수는"+count+"번이다");
break;
}
} while(true);
}
}
728x90
반응형
'Java > JAVA의 정석_문제풀이' 카테고리의 다른 글
[7-10~11]연습문제 - 메서드/제어자 (0) | 2022.11.06 |
---|---|
[6-23~24]연습문제 - 메서드 (0) | 2022.11.06 |
[6-22]연습문제 - 메서드 (0) | 2022.11.06 |
[6-21]연습문제 - 메서드 (0) | 2022.11.06 |
[6-3~5]연습문제 - 메서드/생성자 (0) | 2022.11.04 |
댓글
250x250
반응형
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday