Boolean While While设置为true,设置为false时不会停止 - java

Max*_*pin 0 java loops boolean

我正在创建一个简单的游戏,其中生成一个随机数,如果你猜对了,你就赢了!我的问题:有一个循环(运行)继续运行游戏,直到玩家决定退出.当玩家选择退出时,循环应设置为false并停止,但当玩家点击退出时,程序会重复循环.将boolean设置为false的程序部分用粗体表示.

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.");
     }
}
Run Code Online (Sandbox Code Playgroud)

Ell*_*sch 5

=当你需要两个时,你就有一个

while(run = true)
Run Code Online (Sandbox Code Playgroud)

一个,它的赋值(它也产生Java中赋值).就像是,

while(run == true)
Run Code Online (Sandbox Code Playgroud)

你也可以使用更简单的

while (run)
Run Code Online (Sandbox Code Playgroud)