2013-11-20 12 views
5

私はちょっとしたゲームを書こうとしていますが、再度プレイしたい場合はユーザーにプロンプ​​トを表示し、もう一度再生したくない場合はループを終了する方法についています。 ..Javaループを終了するには?基本的な推測ゲームの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++; 


     } 
    } 
} 

}

+0

ループを終了する最適な方法は、「ブレーク」を使用していることです。だから条件をつけ(もしあれば)、ユーザーが再び遊びたいかどうかをチェックし、そうでない場合は復帰を返します – k4sia

答えて

11

あなたは、現在のループから抜け出すためにbreakを使用することができます。

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

プリント:

0 
1 
2 
3 
4 
5 

しかし、do-whileループは、おそらくあなたのユースケースのためのより良いです。彼らはまだプレイしていない場合falseに、この変数を設定する場合

5

変更

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); 

は、どこかをユーザーに尋ねます。

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

0

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ステートメントを使用できます。

関連する問題