4

範囲の開始として使用する数値を入力してから、範囲の終了である別の数値を入力するようにユーザーに依頼する必要があります。開始番号は 0 以上である必要があり、終了番号は 1000 を超えることはできません。どちらの番号も 10 で割り切れる必要があります。これらの条件を満たす方法を見つけましたが、それらが満たされない場合、私のプログラムはユーザーに次のように伝えます。彼らの入力は間違っていました。ユーザーが入力した後、条件が満たされていることを確認し、条件が満たされていない場合はループバックして再度入力するようにコーディングすることは可能ですか。ここに私がこれまでに持っているコードがあります。

    Scanner keyboard = new Scanner(System.in);
    int startr;
    int endr;
    System.out.println("Enter the Starting Number of the Range: ");
    startr=keyboard.nextInt();
    if(startr%10==0&&startr>=0){
        System.out.println("Enter the Ending Number of the Range: ");
        endr=keyboard.nextInt();
        if(endr%10==0&&endr<=1000){

        }else{
            System.out.println("Numbers is not divisible by 10");
        }
    }else{
        System.out.println("Numbers is not divisible by 10");
    }
4

3 に答える 3

7

do-while で簡単:

Scanner keyboard = new Scanner(System.in);
int startr, endr;
boolean good = false;
do
{
  System.out.println("Enter the Starting Number of the Range: ");
  startr = keyboard.nextInt();
  if(startr % 10 == 0 && startr >= 0)
    good = true;
  else
    System.out.println("Numbers is not divisible by 10");
}
while (!good);

good = false;
do
{
    System.out.println("Enter the Ending Number of the Range: ");
    endr = keyboard.nextInt();
    if(endr % 10 == 0 && endr <= 1000)
      good = true;
    else
      System.out.println("Numbers is not divisible by 10");
}
while (!good);

// do stuff
于 2013-04-05T20:45:53.973 に答える
3

次のような、しばらく使用する必要があります。

while conditionsMet is false
    // gather input and verify
    if user input valid then
        conditionsMet = true;
end loop

するべきです。

于 2013-04-05T20:48:06.553 に答える