21

Hey I'm just starting my first programming book on java so this should be an easy fix. Messing around with my fresh knowledge of conditionals and I'm getting the title error.

Here's the 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." );
    }
}

When I try to compile:

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



symbol: variable input
location: class Music
1 error
Dennis Meng
  • 5,109
  • 14
  • 33
  • 36
user1641994
  • 261
  • 1
  • 2
  • 7

7 Answers7

17

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.

Neal
  • 6,722
  • 4
  • 38
  • 31
8

You have not defined the variable input here. You should have:

Scanner input = new Scanner( System.in );
Reimeus
  • 158,255
  • 15
  • 216
  • 276
2

You used the variable input, as in

y=input.nextInt();

You can't do this, because it's not a variable. I believe you meant for it to be "x", or you could replace

Scanner x = new Scanner( System.in );

with

Scanner input = new Scanner( System.in );
natewelch_
  • 254
  • 1
  • 12
2

Alternatively, you could just change:

y = input.nextInt();

To:

y = x.nextInt();

Then it will work.

This is because input is not defined anywhere in the code. The provided code suggests that you expect it to be an instance of the Scanner class. But the instance of Scanner class is actually defined as x and not input.

Derek W
  • 9,708
  • 5
  • 58
  • 67
0
 Scanner x = new Scanner( System.in ); 
 int y = x.nextInt();
karthik
  • 137
  • 4
0
Scanner input = new Scanner( System.in );
int y = input.nextInt();

(or)

Scanner x = new Scanner( System.in ); 
int y = x.nextInt();
IvanH
  • 5,039
  • 14
  • 60
  • 81
sakthi
  • 1
-2

this is the simple fix y = x.nextInt(); instead of y = input.nextInt();

Kirk
  • 1
  • 4
    The question was adequately answered two minutes after it was posted *more than two years ago*. You're not adding anything new here now. – nobody Mar 05 '15 at 19:56