0

特定の値を決定するために実行時にユーザーからの入力を必要とする、この小さなコーディング スニペットがあります。ユーザーが 0 未満と 100 万を超える値を入力できないようにしたいので、0 =< YEARS_AHEAD =< 1000000.

私は非常に多くのチュートリアルを調べ、これに関するヘルプを検索しましたが、何も見つかりませんでした. これは私のコードです。

Scanner reader = new Scanner(System.in);
    int YEARS_AHEAD;
    System.out.print("Enter the amount of years ahead: ");
    while (true)
        try {
            YEARS_AHEAD = Integer.parseInt(reader.nextLine());
            break;
        }catch (NumberFormatException nfe) {
            System.out.print("This value must be an integer, please enter the number of years ahead again: ");
        }  
4

2 に答える 2

1

簡単な if を追加します。

if (YEARS_AHEAD < 0 || YEARS_AHEAD > 1000000) {
  // say something to the user, retry entering the number
}

もう 1 つのオプションは、while サイクルを使用することです。

int YEARS_AHEAD = -1; // invalid value
while (YEARS_AHEAD < 0 || YEARS_AHEAD > 1000000) {
    try {
        System.out.print("Enter the amount of years ahead: ");
        YEARS_AHEAD = Integer.parseInt(reader.nextLine());
    }catch (NumberFormatException nfe) {
        System.out.print("This value must be an integer, please enter the number of years ahead again: ");
    }  
}
于 2013-03-05T13:17:43.633 に答える
0

入力内容を読み終わったら

YEARS_AHEAD = Integer.parseInt(reader.nextLine());

if-else入力が許可されているかどうかを確認します。

if(YEARS_AHEAD < 0 || YEARS_AHEAD >1000000){
   System.out.println("Invalid Input");
  }else{
     // do your processing here.
 }
于 2013-03-05T13:19:14.973 に答える