当输入与数字不同时如何设置消息以不提供错误“线程“ main”中的异常java.util.InputMismatchException”?
我必须使用if / else语句或什么? 请在我可怜的java中帮助我:)
public static void main(String[] args) {
System.out.println("Oceń konika od 1 do 6");
Scanner PodajCyfre = new Scanner( System.in ); //nadanie zmiennej input PodajCyfre
int WygladKonika = PodajCyfre.nextInt(); // przypisanie PodajCyfre do wartości
switch (WygladKonika) {
case 1 :
System.out.println("Ten konik jest brzydki i mi sie kompletnie nie podoba");
break;
case 2:
System.out.println("Nie jest za ładny ten konik, ale widziałam brzydsze");
break;
case 3:
System.out.println("Taki średni jest ten konik");
break;
case 4:
System.out.println("Ładny konik");
break;
case 5:
System.out.println("Śliczny konik bardzo mi sie podoba");
break;
case 6:
System.out.println("To jest najpiekniejszy konik jakiego widziałam. Uwielbiam go !!");
break;
default:
System.out.println("To nie jest cyfra od 1 do 6");
}
}
}
答案 0 :(得分:1)
在强制转换为Int扫描仪输入之前进行检查。因此,代码将在while循环中输入。
public static void main(String[] args) {
Scanner PodajCyfre = new Scanner(System.in); //nadanie zmiennej input PodajCyfre
System.out.println("Oceń konika od 1 do 6");
while (!PodajCyfre.hasNextInt()) {
System.out.println("Please write a number ! Oceń konika od 1 do 6");
PodajCyfre.next();
}
int WygladKonika = PodajCyfre.nextInt(); // przypisanie PodajCyfre do wartości
switch (WygladKonika) {
case 1:
System.out.println("Ten konik jest brzydki i mi sie kompletnie nie podoba");
break;
case 2:
System.out.println("Nie jest za ładny ten konik, ale widziałam brzydsze");
break;
case 3:
System.out.println("Taki średni jest ten konik");
break;
case 4:
System.out.println("Ładny konik");
break;
case 5:
System.out.println("Śliczny konik bardzo mi sie podoba");
break;
case 6:
System.out.println("To jest najpiekniejszy konik jakiego widziałam. Uwielbiam go !!");
break;
default:
System.out.println("To nie jest cyfra od 1 do 6");
}
}
答案 1 :(得分:0)
按如下方式读取int
int WygladKonika;
try {
WygladKonika = PodajCyfre.nextInt();
} catch (InputMismatchException e) {
System.out.println("Input can't be converted to an integer");
// exit, read another value, etc
}
答案 2 :(得分:0)
使用try-catch
块捕获java.util.InputMismatchException
并在发生此异常时显示消息。
try {
Scanner PodajCyfre = new Scanner(System.in); //nadanie zmiennej input PodajCyfre
int WygladKonika = PodajCyfre.nextInt(); // przypisanie PodajCyfre do wartości
switch (WygladKonika) {
//
}
} catch (InputMismatchException e) {
// Exception caught, show message
System.out.println("Invalid input");
}