0

我已经阅读了很多关于 java 中的扫描仪对象的这个问题。但是我尝试了一些解决方案,但没有一个给我带来很好的结果。

这是交易,我有这样的事情:

Scanner scan = new Scanner(System.in);
while (!(boolean)) {
    System.out.Println("Please give a char :");
    char c = scan.next().charAt(0);
    [...]
}
scan.close();

这会返回一个异常,但我没有时间输入一个字符:

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:我为英语不完美而道歉。

4

1 回答 1

0
scan.next()

一直在枚举。

所以,在接受输入之前检查。

尝试

    if(scan.hasNext()){

     System.out.Println("Please give a char :");
            char c = scan.next().charAt(0);
            [...]   
   }
于 2013-09-10T14:40:25.463 回答