我在java中用scan对象读过很多关于这个问题的内容。但我尝试了一些解决方案,没有人给我一个很好的结果。
这是交易,我有这样的事情:
Scanner scan = new Scanner(System.in);
while (!(boolean)) {
System.out.Println("Please give a char :");
char c = scan.next().charAt(0);
[...]
}
scan.close();
这会返回一个异常,但我没有时间输入一个char:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1416)
at class1.main(class.java:21)
我也尝试过这样的事情:
Scanner scan = new Scanner(System.in);
while (!(boolean)) {
if (scan.hasNextLine) {
System.out.Println("Please give a char :");
char c = scan.next().charAt(0);
}
[...]
}
scan.close();
但这一次,我有一个无限循环:(
我不明白,我自己无法弄明白,我读到的很多解决方案并没有为我解决问题。
如何让我的char简单地循环?
Ps:我为英语不够完美而道歉。
答案 0 :(得分:0)
scan.next()
一直在枚举。
所以,在接受输入之前检查。
尝试
if(scan.hasNext()){
System.out.Println("Please give a char :");
char c = scan.next().charAt(0);
[...]
}