2015-09-02 60 views
0

我正在创建一个简单的游戏,其中生成一个随机数字,如果您猜对了,您会赢! 我的问题: 有一个while循环(run)继续运行游戏,直到玩家决定退出。当玩家选择退出时,循环应该设置为false并停止,但是当玩家退出时,程序会重复循环。 布尔值设置为false的程序部分以粗体显示。布尔While While Loop设置为true,设置为false时不停止 - java

import java.util.Scanner; 
import java.util.Random; 

public class RunHiLowGame { 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     //variables 
     String name; 
     int guess; 
     int guessnum = 0; 
     boolean run = true; 
     int number; 
     int choice; 

     Scanner input = new Scanner(System.in); 
     Random r = new Random(); 

     number = 1; 

     //welcome 


     //create loop to ask guess then check if high or low   
     while (run = true) { 
      //enter guess 
      System.out.println("Enter your guess:"); 
      guess = input.nextInt(); 

      //if low say press 1 to retry 
      if (guess > 0 && guess < 100) { 
       if (guess < number) { 
        System.out.println("Your number was too low! Guess again!"); 
        guessnum++; 
       } 
       else if (guess > number) { 
        System.out.println("Your number was too high! Guess again!"); 
        guessnum++; 
       } 
       else if (guess == number) { 
        System.out.println("You have won!");  
        guessnum++; 
        System.out.println("Amount of guesses:" + guessnum); 
        System.out.println("Press 1 to play again or press 2 to exit  the game."); 
        choice = input.nextInt(); 
        if (choice == 1) { 
         System.out.println("Restarting.\n"); 
        } 
        else if (choice == 2) { 
         System.out.println("Exiting."); 
         run = false 
        }    
        else { 
         System.out.println("Error."); 
        } 
       } 
       else { 
        System.out.println("Invalid answer."); 
       } 
      } 
     } 
     System.out.println("Exited."); 
    } 
} 
+0

看起来该部分没有加粗,因为它被格式化为代码。我很抱歉。 –

回答

5

你有一个=当您需要两个在这里

while(run = true) 

一个,它的分配(这也产生了在Java中分配的值)。喜欢的东西,

while(run == true) 

,你也可以使用简单的

while (run) 
+0

另外,纠正我,如果我在这里是错误的,但用户必须猜测正确的数字,然后才能退出游戏来判断其他if语句的代码和布局吗?因此在游戏结束前不可能退出 –

0

操作员检查平等==。您对while循环的表达,run = true,将true指定为run

0

我想你应该用“System.exit(0);”替换“run = false”。

我认为循环是自相矛盾的,因为它只有在运行为真时才起作用。一旦运行是错误的,循环不起作用,因此不是错误的。要测试它,请在按下quit之后编写此代码:System.out.println(run?“Run is true”:“Run is false”)。

相关问题