这是我的代码。这很简单,我只是在问用户一个猜测,并告诉他们是否正确,高或低。为了不断询问,我做了一个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
,以确保它与众不同。您永远都不想这样做。我只想表明几乎所有初始值都可用于初始化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);
该循环运行一次,并直接从用户输入中分配
guess
,而不必自己分配。