0

私のプログラムは、ユーザーが整数以外の整数を入力した場合、現在のようにメインメソッド全体を終了するのではなく、再試行する必要があることをユーザーに通知したいと思います。問題のある部分の擬似コード:

int integer = input.nextInt();
If (user types in a non-integer) { 
  ("you have entered a false value, please retry");
  then let's user enter int value
else {
  assign nextint() to integer and continue
}
4

2 に答える 2

8

ユーザーが適切な整数値を入力するまで、whileループを使用してコードのその部分を再実行できます。

do {
    input = read user input
} while(input is not an integer)

を使用しているようですので、次の方法を使用Scannerできます。hasNextInt

while (!input.hasNextInt()) {
    let user know that you are unhappy
    input.next(); //consume the non integer entry
}

//once here, you know that you have an int, so read it
int number = input.nextInt();
于 2012-09-28T16:10:06.523 に答える
0

これは、ユーザーが入力時に整数以外のものを入力することを心配していると仮定しています。

public static void main(String[] args) {
    Integer integer = 0;
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter an integer:");
    String line = sc.next();
    integer = tryParse(line);
    while(integer == null){
        System.out.print("The input format was incorrect, enter again:");
        integer = tryParse(sc.next());
    }
    int value = integer.intValue();
}

public static Integer tryParse(String text){
    try{
        return new Integer(text);
    } catch
    (NumberFormatException e){
        return null;
    }
}
于 2012-09-28T16:24:24.280 に答える