这是我的代码。这很简单,我只是在问用户一个猜测,并告诉他们是否正确,高或低。为了不断询问,我做了一个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,而不必自己分配。

07-28 02:10
查看更多