重复的局部变量

时间:2013-01-15 01:32:14

标签: java eclipse

我最近开始用java编程并需要帮助。

使用Programming Java for Dummies,我正在尝试制作一个用户必须猜测数字的游戏。一旦用户最终得到正确答案,就会记录并显示尝试次数。

星号线给我带来了麻烦,有什么帮助吗?

import static java.lang.System.out;
import java.util.Scanner;
import java.util.Random;

import javax.swing.JOptionPane;

public class HelloWorld
{
        public static void main(String args[])
        {
            Scanner keyboard = new Scanner (System.in);
            out.println("Hello, welcome to the Guessing Game.");
            out.println("To begin, pick a random number from 1 - 10: ");

            int inputNumber = keyboard.nextInt();
            int randomNumber = new Random(1).nextInt(10);
            int numGuesses = 0;

            while (inputNumber != randomNumber){

                out.println();
                out.println("You're guess was wrong, try again.");
                out.println("Pick an integer from 1-10.");
                **int inputNumber = keyboard.nextInt();** 
                numGuesses++;
            }

            {

                out.println("You won in " + numGuesses + " guesses.");

                out.println("Thanks for playing!");
            }
            }

}

3 个答案:

答案 0 :(得分:6)

替换

**int inputNumber = keyboard.nextInt();** 

inputNumber = keyboard.nextInt(); 

使用原始版本,您将在while范围内创建新变量,而不是在外部分配旧变量。

由于在while块之后被破坏,因此条件本身使用函数范围中的变量。

答案 1 :(得分:3)

这一行重新声明inputNumber,已经声明了。

int inputNumber = keyboard.nextInt();

将其更改为

inputNumber = keyboard.nextInt();

答案 2 :(得分:0)

您已在顶部定义,因此您无需重新定义它。相反它应该是inputNumber = keyboard.nextInt();