web-dev-qa-db-fra.com

Erreur de compilation Java: impossible de trouver le symbole

Salut, je viens juste de commencer mon premier livre de programmation sur Java, donc ça devrait être une solution facile . Je m'amuse avec ma nouvelle connaissance des conditionnels et je reçois l'erreur de titre.

Voici le code:

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." );
    }
}

Quand j'essaye de compiler:

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



symbol: variable input
location: class Music
1 error
19
user1641994

Le message d'erreur vous indique que votre variable 'input' n'existe pas dans votre scope. Vous souhaitez probablement utiliser votre objet Scanner, mais vous l'avez nommé "x" et non "entrée". 

Scanner input = new Scanner( System.in );

Devrait le réparer.

16
Neal

Vous n'avez pas défini la variable input ici. Tu aurais dû:

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

Alternativement, vous pouvez simplement changer:

y = input.nextInt();

À: 

y = x.nextInt();

Alors ça va marcher. 

En effet, input n'est défini nulle part dans le code. Le code fourni suggère que vous pensez qu'il s'agira d'une instance de la classe Scanner. Mais l'instance de la classe Scanner est en réalité définie comme étant x et non input.

2
Derek W

Vous avez utilisé l'entrée variable, comme dans 

y=input.nextInt();

Vous ne pouvez pas faire cela, car ce n'est pas une variable. Je crois que vous vouliez que ce soit "x", ou vous pourriez remplacer

Scanner x = new Scanner( System.in );

avec

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();

(ou)

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