2016-04-12 5 views
0

地面に到達するまでのオブジェクトの速度と位置を計算する必要があります。Javaでステート中にDoを実行する問題

私はdo whileステートメント(私は使用する必要があります)を除いて、他のすべてにはハンドルがあると思います。
私はちょうど正しい方向に突き刺しが必要です。または、なぜこれをやっているのかを少なくとも伝える必要があります。ユーザの入力は600より大きくなければなりません。そうしないと、プログラムはエラーメッセージを表示し、ユーザに
私の問題は、私が700を選んだとしても、私がしてはならないとエラーメッセージが表示されることです。 HEIGHTTHRESHOLDは600に設定されたpublic定数です。
この部分にポインタが必要なので、私はプログラム全体を投稿しませんでした。

public static int initialPosition() { 
    Scanner keyboard= new Scanner (System.in); 
     System.out.println("Enter the initial position (Must be over 600 feet)"); 
     int position = keyboard.nextInt(); 

     do { 
      System.out.println("Error- Position is too low! Try Again"); 
      System.out.println("Enter the initial position " 
        + "(Must be over 600 feet)"); 
      keyboard.nextInt(); 
     break; 

     }while (position>HEIGHTTHRESHOLD); 
     return position; 
} 
+2

'' '{...} while'''を行います。 '' {{}} ''ブロックは少なくとも_一度実行されます。 –

+0

SOプロフェッショナル:あなたが宿題について助けを求めていることを明らかにしないでください。 「宿題の質問」のほとんどは低品質であり、あなたのものは集計されて、必要以上に下降音を得るかもしれません。 – Aaron

+0

do-whileループの途中に改行を入れないでください。書かれているように、それはループではありません。なぜなら、ループは1回だけループするからです。 – DwB

答えて

0

使用しよう:

if(position>HEIGHTTHRESHOLD){ 
do { 
      System.out.println("Error- Position is too low! Try Again"); 
      System.out.println("Enter the initial position " 
        + "(Must be over 600 feet)"); 
      position = keyboard.nextInt(); 
     break; 
} 
     }while (position>HEIGHTTHRESHOLD);} 

しばらくはこの場合にははるかに良いだろうが、あなたがこれを必要とする場合...

0

do{} while()文がさえ確認せずに最初の時間を実行します調子。条件が満たされていない場合は、を繰り返してになりません。

while(){}ステートメントを使用してください。

あなたは割り当てが、私はお勧めしdo whileを使用する必要がある場合:

boolean postiionEntered = false; 
int position 
do{ 

    position = keyboard.nextInt(); 
    if(position<HEIGHTTHRESHOLD){ 

     System.out.println("Error- Position is too low! Try Again"); 
     System.out.println("Enter the initial position "  
     + "(Must be over 600 feet)"); 
    else{positionEntered = true;} 
} 
while(positionEntered == false) 
return position; 

・ホープ、このことができます、

リアム

0

は、OracleのJavaチュートリアル(this tutorial trailに焦点を)読んで考えてみましょう。

do 
{ 
    ... blah 
    position = keyboard.nextInt(); 
} while (position < 601) 
// pay attention! you continue asking for input only while the input is 
// less-than the minimum 
0

Liamは言ったように、whileループは少なくとも1回実行されます。だから、あなたはあなたがあなたのロジック全体を実行し、初回とN回ごとに何が起こるかを確認する必要があります。 本当に必要な場合を除いて、 "break"や他の "get out of my loop"文は使用しないでください。このような

何かが私の本の中で、より良いようだ:

public static int initialPosition() { 
Scanner keyboard= new Scanner (System.in); 
    System.out.println("Enter the initial position (Must be over 600 feet)"); 

    do { 
     int position = keyboard.nextInt(); 
     if (position < HEIGHTTHRESHOLD) { 
      System.out.println("Error- Position is too low! Try Again"); 
      System.out.println("Enter the initial position " 
       + "(Must be over 600 feet)"); 
     } 

    }while (position<HEIGHTTHRESHOLD); 
    return position; 

}

+0

あなたは恐ろしいです!それはうまくいった!どうもありがとうございます! –

関連する問題