java - 为什么/如何将整数设置为 -1 使我的 while 循环工作?

标签 java performance loops while-loop

这是我的代码。这很简单,我只是要求用户猜测,并告诉他们数字是否正确,是高还是低。为了不断询问,我做了一个 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/

相关文章:

java - 循环迭代等待 repaint() 方法完成

mysql - 为 MySQL 选择数据类型?

java - 在 java 中遍历 EnumSet?

javascript - 如何将字符串添加到数组并返回字符串

javascript - 检查嵌套数组中的元素

java: 无法推断 MaxHeap<> 的类型参数

java - 对 JSP scriptlet 中的选择框项目进行排序

java - 交换数组的最小和最大 int [Java]

performance - `any`/`all` 的 Haskell/GHC 性能

javascript - mongoose/mongodb 计算统计数据的最佳方法