私は小さなゲームを書こうとしていますが、もう一度プレイしたい場合にユーザーにプロンプトを出す方法と、もう一度プレイしたくない場合にループを終了する方法にこだわっています...
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++;
}
}
}
}
break
を使用して、現在のループから抜け出すことができます。
for (int i = 0; i < 10; i++) {
if (i > 5) {
break;
}
System.out.Println(i);
}
プリント:
0
1
2
3
4
5
ただし、 do-while
ループはおそらくユースケースに適しています。
変化する
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
ポイントがある場合は、コードを読み取るときにプログラムフローを追跡することが難しくなる可能性があるため、これはあまり好ましくありません。
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
ステートメントを使用できます。