0

このコードは、最初にループが発生したときは完全に正常に実行されますが、(プログラム全体が実行された後)再度反復するときに実行されます。それはスローしNoSuchElementExceptionます、私のコードのどこにも何も閉じないScannerので、何が問題になる可能性がありますか?

また、コンパイラーは、このループが呼び出され、その行が次のような行を提供することにも言及する必要があります。l = scan.nextInt();

Scanner scan = new Scanner(System.in);
int l;
do {
System.out.println("Please Select...:");
System.out.println("1. for ...");
l = scan.nextInt();
}
while (l < 0 || l > 4);

私の変数は小文字の「L」なので、誰も混乱することはありません。

4

1 に答える 1

1

NoSuchElementException入力にデータがない場合にスローされます。これはコードに当てはまる必要がありますが、完全な例を提供しない限り、解決策を見つけるのは困難です。私の最初の提案は、メソッドを使用して入力にデータがあるかどうかを確認し、最初の関数によって返された値がであった場合にのみhasNextInt()呼び出すことです。nextInt()true

于 2013-01-27T15:54:16.463 に答える