Thursday, March 22, 2007
Java 자바] 실수 입력 받기, 키보드로, 에러 처리 루프; Input Float Number Loop
키보드에서 사용자로부터 double형 실수 숫자 (정수도 포함)를 입력받는 법입니다. 다만, 사용자가 제대로 된 숫자가 아닌 문자열 등을 잘못 입력했을 때에는, 올바른 값을 입력할 때까지 루프를 돌리며, 계속 다시 입력받습니다.
소스 파일명: Example.java
try...catch 로는 이런 에러를 처리할 수가 없더군요.
간단한 소스에서는 그냥 nextDouble() 로 입력받지만,
위의 소스의 경우는 에러 처리 과정 때문에, hasNextDouble() 로 입력을 받고
nextDouble() 은 입력받은 값을 변수에 저장만 할 뿐, 입력을 받지는 않습니다.
컴파일 및 실행 결과 화면:
정수만 입력 받기: ▶▶ Java 자바] 정수 숫자 입력 받기, 16진수 헥사 입력; Input Hex Int Number Only
▶▶ Java/자바] 키보드 입력; 사용자 문자열/숫자 입력 받기; User Input String, Number
사용자로부터 double형 숫자 입력 받는 예제
소스 파일명: Example.java
import java.util.*;
public class Example {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("실수를 입력하세요, 정수도 가능: ");
// 제대로 된 숫자를 입력하지 않은 경우
// 되풀이하여 입력받기
while (!sc.hasNextDouble()) {
sc.next(); // 잘못된 입력 값 버리기
System.err.print("에러! 다시 입력바랍니다: ");
}
// 입력받은 숫자를 변수에 저장
double d = sc.nextDouble();
System.out.println("OK, 입력된 실수: " + d);
}
}
public class Example {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("실수를 입력하세요, 정수도 가능: ");
// 제대로 된 숫자를 입력하지 않은 경우
// 되풀이하여 입력받기
while (!sc.hasNextDouble()) {
sc.next(); // 잘못된 입력 값 버리기
System.err.print("에러! 다시 입력바랍니다: ");
}
// 입력받은 숫자를 변수에 저장
double d = sc.nextDouble();
System.out.println("OK, 입력된 실수: " + d);
}
}
try...catch 로는 이런 에러를 처리할 수가 없더군요.
간단한 소스에서는 그냥 nextDouble() 로 입력받지만,
위의 소스의 경우는 에러 처리 과정 때문에, hasNextDouble() 로 입력을 받고
nextDouble() 은 입력받은 값을 변수에 저장만 할 뿐, 입력을 받지는 않습니다.
컴파일 및 실행 결과 화면:
D:\Z>javac Example.java && java Example
실수를 입력하세요, 정수도 가능: tetea
에러! 다시 입력바랍니다: -+534
에러! 다시 입력바랍니다: ..
에러! 다시 입력바랍니다: .
에러! 다시 입력바랍니다: 55..55
에러! 다시 입력바랍니다: 100.00
OK, 입력된 실수: 100.0
D:\Z>
실수를 입력하세요, 정수도 가능: tetea
에러! 다시 입력바랍니다: -+534
에러! 다시 입력바랍니다: ..
에러! 다시 입력바랍니다: .
에러! 다시 입력바랍니다: 55..55
에러! 다시 입력바랍니다: 100.00
OK, 입력된 실수: 100.0
D:\Z>
정수만 입력 받기: ▶▶ Java 자바] 정수 숫자 입력 받기, 16진수 헥사 입력; Input Hex Int Number Only
▶▶ Java/자바] 키보드 입력; 사용자 문자열/숫자 입력 받기; User Input String, Number
tag: java
자바 | Java
감사합니다! 덕분에 아이디어 잘 얻어가요:)
<< Home