21

嘿,我刚开始写第一本关于 java 的编程书,所以这应该很容易解决。使用我对条件句的新知识,我得到了标题错误。

这是代码:

import java.util.Scanner;

public class Music
{
    public static void main( String[] args )
    {

        Scanner x = new Scanner( System.in );

        int y;

        System.out.print( "Which is better, rap or metal? 1 for rap, 2 for metal, 3 for neither" );
        y = input.nextInt();

        if ( y == 1 )
            System.out.print( "Someone hasn't heard\nhttp://www.youtube.com/watch?v=Vzbc4mxm430\nyet" );

        if ( y == 2 )
            System.out.print( "Someone hasn't heard\nhttp://www.youtube.com/watch?v=s4l7bmTJ7j8\nyet" );

        if ( y == 3 )
            System.out.print( "=/ \nMusic sucks anyway." );
    }
}

当我尝试编译时:

Music.java:13: error: cannot find symbol
y = input.nextInt();



symbol: variable input
location: class Music
1 error
4

7 回答 7

17

错误消息告诉您变量“输入”在您的范围内不存在。您可能想使用您的 Scanner 对象,但您将其命名为“x”,而不是“输入”。

Scanner input = new Scanner( System.in );

应该修复它。

于 2012-09-02T15:31:43.300 回答
8

您尚未在input此处定义变量。你应该有:

Scanner input = new Scanner( System.in );
于 2012-09-02T15:31:51.657 回答
2

您使用了变量输入,如

y=input.nextInt();

你不能这样做,因为它不是一个变量。我相信你的意思是它是“x”,或者你可以替换

Scanner x = new Scanner( System.in );

Scanner input = new Scanner( System.in );
于 2012-09-02T15:33:52.013 回答
2

或者,您可以更改:

y = input.nextInt();

到:

y = x.nextInt();

然后它将起作用。

这是因为input没有在代码中的任何地方定义。提供的代码表明您希望它是Scanner该类的一个实例。但是 class 的实例Scanner实际上被定义为xand not input

于 2012-09-02T15:56:25.427 回答
0
 Scanner x = new Scanner( System.in ); 
 int y = x.nextInt();
于 2013-04-20T06:05:23.477 回答
0
Scanner input = new Scanner( System.in );
int y = input.nextInt();

(或者)

Scanner x = new Scanner( System.in ); 
int y = x.nextInt();
于 2013-10-31T08:50:05.933 回答
-2

这是简单的修复 y = x.nextInt(); 而不是 y = input.nextInt();

于 2015-03-05T19:37:18.367 回答