web-dev-qa-db-ja.com

終了方法Java loop?基本的な推測ゲームでwhileループ

私は小さなゲームを書こうとしていますが、もう一度プレイしたい場合にユーザーにプロンプ​​トを出す方法と、もう一度プレイしたくない場合にループを終了する方法にこだわっています...

import Java.util.Random;
import Java.util.Scanner;

public class Guessinggame {

public static void main(String[] args) {

    System.out.println("Welcome to guessing game! \n" + " You must guess a number between 1 and 100. ");

    while (true) {

        Random randomNumber = new Random();
        Scanner g = new Scanner(System.in);

        int number = randomNumber.nextInt(100) + 1;
        int guess = 0;
        int numberOfGuesses = 0;

        while (guess != number){

            System.out.print("Guess: ");
            guess = g.nextInt();

            if (guess > number ){
                System.out.println( "You guessed too high!");
            }else if (guess < number ){
                System.out.println( "You guessed too low!");
            }else{
                System.out.println( "Correct! You have guessed "+ numberOfGuesses + " times. \nDo you want to play again? (y/n)  ");

            }
            numberOfGuesses++;


        }
    }
}

}

6
user2906011

breakを使用して、現在のループから抜け出すことができます。

for (int i = 0; i < 10; i++) {
  if (i > 5) {
    break;
  }
  System.out.Println(i);
}

プリント:

0
1
2
3
4
5

ただし、 do-while ループはおそらくユースケースに適しています。

13
Zach Latta

変化する

while(true){
  //At some point you'll need to 
  //exit the loop by calling the `break` key Word
  //for example:

  if(/*it's not compatible with your condition*/)
    break;
}

boolean userWantsToPlay=true;
do{
   //the same as before
} while (userWantsToPlay);

次に、再生するかどうかをユーザーに尋ね、再生しない場合はこの変数をfalseに設定します。

もう1つの解決策は、コードをそのままにして、ユーザーに尋ねた後、break;を呼び出すだけです。ユーザーが続行しないと言った場合、これは現在のループからジャンプして、最初のポイントから再開します。ループ。特にネストされたループや複数のbreakポイントがある場合は、コードを読み取るときにプログラムフローを追跡することが難しくなる可能性があるため、これはあまり好ましくありません。

5
Ross Drew

while(true)ステートメントはdo whileステートメントで変更できます。

Scanner k= new Scanner(System.in);

do{
// do sth here...

//ask to user for continue or exit
System.out.println("Continue/Break");
String answer = k.next();

}while(answer.equals("Continue"));

ループを終了する場合は、breakステートメントを使用できます。

0
Batuhan Bardak