-6

while ループを使用して数字ゲームを作成しましたが、代わりに do while を使用することになっていると言われました。どうすればこのフォーマットから do while に転送できるのだろうと思っていました。

import java.util.Scanner; 

public class SS_Un6As2 {

   public static void main(String[] args) {

   int guess = 0;

   int randomNumber = (int) (Math.random() *100) +1;

   Scanner scan = new Scanner(System.in);

   boolean running = true;

       while(running){
           System.out.println("Guess your number");
          guess = scan.nextInt();
           if(guess == randomNumber) {
                System.out.println("You are correct");
             break;
           }
           else if (guess > randomNumber){
               System.out.println("Too high.");
           }              
           else if (guess < randomNumber){
               System.out.println("Too low");
          }
           else {
               System.out.println("Try again");

           }
       }

   System.out.println("Thanks for playing");
    }
}
4

4 に答える 4

6

あなたの問題の解決策

while(running){
       System.out.println("Guess your number");
      guess = scan.nextInt();
       if(guess == randomNumber) {
            System.out.println("You are correct");
         break;
       }
       else if (guess > randomNumber){
           System.out.println("Too high.");
       }              
       else if (guess < randomNumber){
           System.out.println("Too low");
      }
       else {
           System.out.println("Try again");

       }
   }

なる

    do {
       System.out.println("Guess your number");
      guess = scan.nextInt();
       if(guess == randomNumber) {
            System.out.println("You are correct");
         break;
       }
       else if (guess > randomNumber){
           System.out.println("Too high.");
       }              
       else if (guess < randomNumber){
           System.out.println("Too low");
      }
       else {
           System.out.println("Try again");

       }
   }
   while(running);

違い

ではwhile loop、コードを実行できます0-*。(0 から多数)。do-whileループでは、コードを実行できます1-*

スタック オーバーフローの精神

この場所を最後の手段と考えてみてください。私はグーグルdo while loop javaで検索しましたが、最初のリンクはこれで、問題を完全に説明しています。将来的には、私たちの方法に頼る前に、独自の調査方法を使用する必要があるかもしれません。

あなたのために編集

Afor loopは、時間を実行するという点で異なりxます。そのようです:

for(int x = 0; x < 5; x++)
{
   System.out.println("Hello " + x);
}
   /**
    * OUTPUT:
    * Hello 0
    * Hello 1
    * Hello 2
    * Hello 3
    * Hello 4
    */

問題に While ループを適用する

do-whileループには、. の中に条件文がありますwhile

do {
}
while(something is true)

それをあなたのと考えてくださいif statement。次に、その人が時間を推測するまで、それが真実であることを望みます12。論理的には、推測の数を数えたいということになるだけなので、int呼び出された を導入しますguessesguessesそして、あなたは到達したいだけ12で、それ以上はしたくないので、ここから出発します.

do {
   // Some code goes here.
   guesses ++;
   // Increase the number of guesses if they got it wrong.
}
while(correct = false && guesses < 12)

私が行ったcorrectことは、その人が正しく理解したかどうかを示す という変数を作成したことです。guessesそして、彼らが間違った推測をするたびに値を増やします。つまり、次の場合にのみループが停止します。

  • その人は正しく推測します
  • その人は12回の試行をしました

于 2013-07-20T21:42:04.047 に答える
1
  do{
          System.out.println("Guess your number");
          guess = scan.nextInt();

           if(guess == randomNumber) 
           {
               System.out.println("You are correct");
               break;
           }
           else if (guess > randomNumber)
           {
               System.out.println("Too high.");
           }              
           else if (guess < randomNumber)
           {
               System.out.println("Too low");
           }
           else 
           {
               System.out.println("Try again");
           }
    } while(running);
于 2013-07-20T21:41:56.890 に答える
1

あなたの場合、それはかなり簡単です:

       boolean running = true;    
       do {
           System.out.println("Guess your number");
           guess = scan.nextInt();
           if(guess == randomNumber) {
                System.out.println("You are correct");
             break;
           }
           else if (guess > randomNumber){
               System.out.println("Too high.");
           }              
           else if (guess < randomNumber){
               System.out.println("Too low");
           }
           else {
               System.out.println("Try again");

           }
       } while (running)

一般に、次の方法で任意のwhile ループdo-while ループに変換できます。

while (condition) {
  ...
}

となります

if (condition) {
  do {
    ...
  } while (condition)
}
于 2013-07-20T21:42:20.373 に答える