public static void main(String args[]) { /* problem*/
Scanner scan=new Scanner (System.in);
int a; // problem//
System.out.println("a nedir");
a=scan.nextInt();
}
答案 0 :(得分:1)
据我所知,当输入不是整数时,程序停止。所以这里是简单的解决方案:使用方法nextLine()而不是nextInt()。检查输入是否不是数字捕获异常并继续,除非你得到一个数字。
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
int number = 0;
while (true) {
try {
number = Integer.parseInt(input);
return;
} catch (Exception e) {
System.out.println("Invalid number");
}
input = scanner.nextLine();
}
答案 1 :(得分:0)
Scanner.nextInt()会抛出异常。您需要捕获异常并处理它,或使用Scanner.hasNextInt()
阻止它发生。例如:
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
int a;
System.out.println("a nedir");
if(scan.hasNextInt()){
a = scan.nextInt();
}
else{
//Add code to handle invalid input here
//ie. propmt the user to renter input or something like that
}
}
如果你将else块留空,它仍然可以工作,但输入非数字输入时不会发生任何事情。