Java 猜一个数字游戏,但它赢了';不要打印任何东西
我在想,为什么这个代码没有打印出来Java 猜一个数字游戏,但它赢了';不要打印任何东西,java,Java,我在想,为什么这个代码没有打印出来 package Main; import java.util.Random; import java.util.Scanner; public class Counter { public static void main(String[] args) { Random rand = new Random(); int numberOfTries = 0; int numberToGuess =
package Main;
import java.util.Random;
import java.util.Scanner;
public class Counter {
public static void main(String[] args) {
Random rand = new Random();
int numberOfTries = 0;
int numberToGuess = rand.nextInt(1000);
Scanner input = new Scanner(System.in);
int guess;
boolean win = false;
while (win = false) {
System.out.println("Guess a number between 0 and 1000");
guess = input.nextInt(50);
numberOfTries++;
{
System.out.println("Number of Tries is " + numberOfTries);
}
if (guess == numberToGuess) {
System.out.println("You win");
win = true;
} else if (guess < numberToGuess) {
System.out.println("Number is higher");
} else if (guess > numberToGuess) {
System.out.println("Number is Lower");
}
}
}
}
packagemain;
导入java.util.Random;
导入java.util.Scanner;
公共课柜台{
公共静态void main(字符串[]args){
Random rand=新的Random();
int numberofthries=0;
int numberToGuess=rand.nextInt(1000);
扫描仪输入=新扫描仪(System.in);
智力猜测;
布尔赢=假;
while(win=false){
System.out.println(“猜一个介于0和1000之间的数字”);
猜测=input.nextInt(50);
numberofthries++;
{
System.out.println(“尝试次数为”+尝试次数);
}
如果(猜测==数字猜测){
System.out.println(“你赢了”);
赢=真;
}else if(猜测<数字猜测){
System.out.println(“数字更高”);
}否则如果(猜测>数字猜测){
System.out.println(“数字较低”);
}
}
}
}
while语句中有一个错误,它应该是while(win==false)
。单个=
充当赋值运算符,因此返回与赋值相同的值(false)。测试相等性的正确逻辑运算符是==
更改
while (win = false) // this is not a logical operator
到
还要注意,您可能会感到困惑
rand.nextInt(50); // generates a random number within the bound = 50
与
所以你应该把这个改成
guess = input.nextInt();
您的代码有两个问题。
中的=
while(win=false){
是赋值运算符,而不是逻辑运算符
while (win == false) {
其次,Scanner
类中的nextInt
方法不接受参数。从guess=input.nextInt(50);
在这两次修改之后,我能够运行您的程序。要进行比较,您需要使用
=
操作符:while(win==false){…}
win=false
只将false
赋值给win
,然后求值为false
。这就是循环从未执行的原因。我只是像你说的那样更改了它,我明白为什么(:虽然它仍然不会打印任何内容,请编辑您的答案并解释=
和=
之间的区别。我只是按照您所说的更改了它,我明白为什么(:虽然它仍然不会打印任何东西我更改了==部分,尽管它仍然不会打印,我不太明白你所说的其余部分是什么意思,因为它似乎已经是我设置它的方式了(:@HobieObarzanek请仔细阅读更新后的答案,尽管我也更改了那部分内容,但什么都没有happens@HobieObarzanek在这种情况下,请用修改过的代码更新问题。谢谢你的帮助,但是你在哪里写你的猜测呢?即使我删除了它,它仍然不会打印任何内容。这取决于你如何运行你的code.我将您的程序放在Eclipse中,并且能够在控制台视图中与之交互。如果您从命令行运行它,您应该能够在运行命令启动程序后在窗口中输入您的猜测您的代码正在工作;我恐怕您的问题是对如何运行java程序的误解。您认为呢你在做什么来运行它?你在你的计算机上打开什么程序,你在点击或键入什么你认为应该运行程序?我让它运行,但我不太明白我应该把我的猜测放在Eclipse中,但我不能在控制台视图中做任何让我猜测的事情,因为我对编程都是新手,我不知道ally知道我应该在命令行中的什么地方写我的猜测(:您的控制台是否显示“猜测一个介于0和1000之间的数字”?只需在下面单击并输入您的猜测。
guess = input.nextInt();
while (win == false) {
guess = input.nextInt();