Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 布尔值,当循环设置为true时,当设置为false时不会停止_Java_Loops_Boolean - Fatal编程技术网

Java 布尔值,当循环设置为true时,当设置为false时不会停止

Java 布尔值,当循环设置为true时,当设置为false时不会停止,java,loops,boolean,Java,Loops,Boolean,我正在创建一个简单的游戏,其中生成一个随机数,如果你猜对了,你就赢了! 我的问题是: 有一个while循环(run)来继续运行游戏,直到玩家决定退出。当玩家选择退出时,循环应该设置为false并停止,但当玩家点击退出时,程序会重复循环。 程序中布尔值设置为false的部分以粗体显示 import java.util.Scanner; import java.util.Random; public class RunHiLowGame { public static void main(

我正在创建一个简单的游戏,其中生成一个随机数,如果你猜对了,你就赢了! 我的问题是: 有一个while循环(run)来继续运行游戏,直到玩家决定退出。当玩家选择退出时,循环应该设置为false并停止,但当玩家点击退出时,程序会重复循环。 程序中布尔值设置为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.");
     }
}
import java.util.Scanner;
导入java.util.Random;
公共类RunHiLowGame{
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
//变数
字符串名;
智力猜测;
int guessnum=0;
布尔运行=真;
整数;
智力选择;
扫描仪输入=新扫描仪(System.in);
随机r=新随机();
数字=1;
//欢迎光临
//创建循环询问猜测,然后检查是高还是低
while(run=true){
//输入猜测
System.out.println(“输入您的猜测:”);
guess=input.nextInt();
//如果过低,请按1重试
如果(猜测>0&&猜测<100){
如果(猜测<数字){
System.out.println(“你的数字太低了!再猜一次!”);
猜数++;
}
否则如果(猜测>数字){
System.out.println(“你的数字太高了!再猜一次!”);
猜数++;
}
else if(猜测==数字){
System.out.println(“你赢了!”);
猜数++;
System.out.println(“猜测量:+guessnum”);
System.out.println(“按1再次玩,或按2退出游戏”);
choice=input.nextInt();
如果(选项==1){
System.out.println(“重新启动”。\n”);
}
else if(选项==2){
System.out.println(“退出”);
运行=错误
}               
否则{
System.out.println(“错误”);
}
}
否则{
System.out.println(“无效答案”);
}
}
}
System.out.println(“退出”);
}
}

当您需要两个时,您有一个
=

while(run = true)
对于一个,它是赋值(这也会产生Java中赋值的值)。大概

while(run == true)
您也可以使用更简单的

while (run)

当您需要两个时,您有一个
=

while(run = true)
对于一个,它是赋值(这也会产生Java中赋值的值)。大概

while(run == true)
您也可以使用更简单的

while (run)

检查相等性的运算符是
==
while
循环的表达式,
run=true
,将
true
赋值给
run

检查相等性的运算符是
==
。您的
while
循环表达式
run=true
,将
true
赋值给
run
,我认为您应该将“run=false”替换为“System.exit(0);”


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

我认为应该将“run=false”替换为“System.exit(0);”


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

该零件似乎未加粗,因为它已格式化为代码。很抱歉,该部分似乎没有加粗,因为它已格式化为代码。我很抱歉。另外,如果我在这里错了,请纠正我,但是用户必须猜到正确的数字,然后才能根据else if语句的代码和布局退出游戏?因此,在游戏获胜之前退出是不可能的。另外,如果我在这里错了,请纠正我,但是用户必须猜到正确的数字,然后才能根据else if语句的代码和布局退出游戏?因此,在比赛获胜之前,退出是不可能的