正の整数を要求し、ユーザーから正の整数を受け取るまでクラッシュしたり閉じたりしない単純な小さなプログラムを作成しようとしています。ただし、私のプログラムはクラッシュし続け、Scanner を含むメソッドを複数回呼び出すと、エラー NoSuchElementException が報告されます。私が取り組んでいる他のいくつかのことを助けるために、このプログラムの基礎を使用します。これが私の現在のコードです。
import java.util.InputMismatchException;
import java.util.Scanner;
public class test2 {
/**
* Test ways to avoid crashes when entering integers
*/
public static void main(String[] args) {
int num = testnum();
System.out.println("Thanks for the " + num + ".");
}
public static int testnum() {
int x = 0;
System.out.println("Please enter a positivie integer;");
x = getnum();
while (x <= 0) {
System.out.println("That was not a positive integer, please enter a positive integer;");
x = getnum();
}
return x;
}
public static int getnum() {
Scanner scan = new Scanner(System.in);
int testint;
try {
testint = scan.nextInt();
} catch (InputMismatchException e) {
scan.close();
return 0;
}
scan.close();
return testint;
}
}
どんな助けでも大歓迎です、ありがとう:)