java的编译错误:无法找到符号[复制](Java compile error: cannot fi

2019-06-27 17:27发布

这个问题已经在这里有一个答案:

  • 什么是一个“无法找到符号”编译错误是什么意思? 10个回答

嘿,我刚开始对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

Answer 1:

The error message is telling you that your variable 'input' doesn't exist in your scope. You probably want to use your Scanner object, but you named it 'x', not 'input'.

Scanner input = new Scanner( System.in );

Should fix it.



Answer 2:

您还没有定义的变量input这里。 你应该有:

Scanner input = new Scanner( System.in );


Answer 3:

您使用的变量输入,如

y=input.nextInt();

你不能做到这一点,因为它不是一个变量。 我相信你意味着它是“X”,或者你可以更换

Scanner x = new Scanner( System.in );

Scanner input = new Scanner( System.in );


Answer 4:

或者,你可以只改变:

y = input.nextInt();

至:

y = x.nextInt();

然后,它会奏效。

这是因为input没有在代码的任何地方定义。 所提供的代码表明,你希望它成为的一个实例Scanner类。 但实例Scanner类实际上定义为x ,而不是input



Answer 5:

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


Answer 6:

Scanner input = new Scanner( System.in );
int y = input.nextInt();

(要么)

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


Answer 7:

这是简单的解决Y = x.nextInt(); 代替Y = input.nextInt();



文章来源: Java compile error: cannot find symbol [duplicate]