2014년 1월 7일 화요일

[8-8]유효성 검사

import java.util.*;

class Exercise8_8 {
public static void main(String[] args) {
// 1~100 사이의 임의의 값을 얻어서 answer 에 저장한다.
int answer = (int)(Math.random() * 100) + 1;
int input = 0; // 사용자입력을 저장할 공간
int count = 0; // 시도횟수를 세기 위한 변수
//----------------------------나의 답----------------------------------
/* do {
try {
count++;
System.out.print("1과 100사이의 값을 입력하세요 : ");

input = new Scanner(System.in).nextInt();

if (answer > input) {
System.out.println("더 큰 수를 입력하세요. ");
} else if (answer < input) {
System.out.println("더 작은 수를 입력하세요. ");
} else {
System.out.println("맞췄습니다. ");
System.out.println("시도횟수는 "+count+"번입니다.");
break; // do-while 문을 벗어난다.
}

} catch (InputMismatchException i) {
System.out.println("유효하지 않는 값입니다. 
                                                                               +다시 값을 입력해주세요. ");
}
}
//----------------------------------------------------------------------
while (true); // 무한반복문 */
//----------------------------모범답안--------------------------------------------
do {

count++;
System.out.print("1과 100사이의 값을 입력하세요 : ");

try {
input = new Scanner(System.in).nextInt();
}  catch (InputMismatchException i) {
System.out.println("유효하지 않는 값입니다. 
                                                                                    +다시 값을 입력해주세요. ");

continue;
}

if (answer > input) {
System.out.println("더 큰 수를 입력하세요. ");
} else if (answer < input) {
System.out.println("더 작은 수를 입력하세요. ");
} else {
System.out.println("맞췄습니다. ");
System.out.println("시도횟수는 "+count+"번입니다.");
break; // do-while 문을 벗어난다.
}
}
}
}
//-------------------------------------------------------------------------------



사용자로부터 값을 입력받는 경우에는 유효성검사를 철저하게 해야 한다.

입력받는 부분을 try-catch 구문으로 예외처리를 해주기만 하면 된다.

댓글 없음:

댓글 쓰기