这是我的代码。这很简单,我只是要求用户猜测,并告诉他们数字是否正确,是高还是低。为了不断询问,我做了一个 while 循环。
尽管如此,我不确定它为什么或如何工作。我将 int 初始化为 -1 进行猜测,它似乎有效。为什么在没有初始化的情况下它就无法工作,为什么一开始就是负数。这样做似乎有点不合时宜。我猜这不是常见做法?
再次感谢! :)
import java.util.Scanner;
public class numGuess
{
public static void main(String[] args)
{
//generate random number between 1 and 100
int number = (int)(Math.random() * 101);
Scanner input = new Scanner(System.in);
System.out.println("Guess a number between 1 and 100");
int guess = -1;
while (guess != number)
{
System.out.print("\nEnter your guess: ");
guess = input.nextInt();
if (guess == number)
System.out.println("you are correct, the number is " + number);
else if (guess > number)
System.out.println("your guess is too high");
else
System.out.println("your guess is too low");
}
}
}
最佳答案
Java 是一种强类型语言,因此需要先定义变量才能使用。
您必须先定义guess
,然后才能使用它。只要 guess
最初定义为非数字的任何内容,循环就会起作用。
您可以像这样定义 guess
以确保它是不同的。你永远不会想这样做。我只是想表明几乎任何初始值都可以用来初始化猜测。
int guess = number - 1;
您还可以使用 do..while 循环来最初不分配它。这将是首选方法,因为您没有做出任何假设。
int guess;
do {
System.out.print("\nEnter your guess: ");
guess = input.nextInt();
if (guess == number)
System.out.println("you are correct, the number is " + number);
else if (guess > number)
System.out.println("your guess is too high");
else
System.out.println("your guess is too low");
}while(guess != number);
循环运行一次,并直接从用户输入中分配猜测
,而不必在您自己之前分配它。
关于java - 为什么/如何将整数设置为 -1 使我的 while 循环工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27345550/