不是声明

时间:2013-12-09 21:27:17

标签: java

我正在从书中学习用java编写代码。它给出了一个猜谜游戏的例子并给出了代码。我想把它作为参考。但我不断收到错误。它可能是我输入它的方式因为我正在读它的点燃它有点搞砸了。

有很多这样的错误,但没有像我这样的错误。我正在尝试制作一个猜谜游戏,但我一直收到这个错误:

GuessingGame.java:17:不是声明                     (int)(Math.random()* 10)+ 1;

代码:

import java.util.Scanner;
public class GuessingGame
{
    static Scanner sc = new
Scanner(System.in);
    public static void
main(String[] args)
    {
    bolean keepPlaying = true;
    System.out.println("Let's play a guessing game!");
    while (keepplaying)
    {
        bolean validInput;
        int number, guess;
        String answer;
        // Pick a random number = 
    (int)(Math.random() * 10) + 1;
        // Get the guess
        System.out.print("What do you think it is? ");
        do
        {
            guess = sc.nextInt();
            validInput = true;
            if ((guess < 1) || (guess > 10))
            {
                System.out.print
                    ("I said between 1 and 10. "
                    + "Try again: ");
                validInput = false;
            }
        }while (!validInput);
        // Check the guess
        if (guess == number)
            System.out.println(
        "You're right!");
        else
            System.out.println(
        "You're wrong! " + "The number was " + number);
        // Play again?
        do
        {
            System.out.println("\nPlay again? (Yes or No)");
            answer = sc.next();
            validInput = true;
            if (asnwer.equalsIgnoreCase("Yes"));
            else if (answer.egualsIgnoreCase("No")-
                keepPlaying = false);
            else
                        validInput = false;
        } while (!validInput);
    }
    System.out.println("\nThank you for playing!");
}

}

4 个答案:

答案 0 :(得分:6)

确实如此,(int)(Math.random() * 10) + 1;不是声明。与其他语言不同,Java不允许将表达式作为语句。

我认为上面评论中的number一词属于这一行:

// Pick a random number = 
(int)(Math.random() * 10) + 1;

可是:

// Pick a random number
number = (int)(Math.random() * 10) + 1;

(上面已经有int number;,所以变量已经声明了所有内容。)

答案 1 :(得分:2)

您需要将语句中计算的值分配给变量。 在你的情况下,它是可变数字。

number = (int)(Math.random() * 10) + 1;

答案 2 :(得分:1)

您有一个number变量被引用但从未创建过。我假设这是需要采用正确数字的变量。变化:

(int)(Math.random() * 10) + 1;

number = (int)(Math.random() * 10) + 1;

答案 3 :(得分:1)

这是因为(int)(Math.random() * 10) + 1;只是将一个随机数作为int,但不会将其存储为任何内容。试着这样做。

number = (int)(Math.random() * 10) + 1;