it-swarm.dev

Java编译错误:找不到符号

嘿,我刚刚开始编写关于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
19
user1641994

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

Scanner input = new Scanner( System.in );

应该解决它。

16
Neal

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

Scanner input = new Scanner( System.in );
8
Reimeus

或者,你可以改变:

y = input.nextInt();

至:

y = x.nextInt();

然后它会工作。

这是因为input未在代码中的任何位置定义。提供的代码表明您希望它是Scanner类的实例。但Scanner类的实例实际上定义为x而不是input

2
Derek W

您使用了变量输入,如

y=input.nextInt();

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

Scanner x = new Scanner( System.in );

Scanner input = new Scanner( System.in );
2
flygoing
 Scanner x = new Scanner( System.in ); 
 int y = x.nextInt();
0
karthik
Scanner input = new Scanner( System.in );
int y = input.nextInt();

(要么)

Scanner x = new Scanner( System.in ); 
int y = x.nextInt();
0
sakthi