2013-12-05 3 views
2

, приведенный ниже код является частью моей программы, которая должна дать пользователю возможность продолжить, нажав p и выйти, нажав e. в любом случае я продолжаю получать эту единственную ошибку, и я не знаю, что делать, чтобы исправить ее здесь, - это ошибка (я попытался переместить строку arround, но это не повлияло, и если я удалю ее, программа скомпилируется, но затем она переходит к бесконечной цикл):проблема, связанная с компиляцией программы

C:\Users\Asus\Desktop\javaproject\products.java:112: error: cannot find symbol 
      user_selection = keyboard.nextLine() ; 
          ^
    symbol: variable keyboard 
    location: class productsDataFinder 
1 error 

Process completed. 

и вот код:

String user_selection = "????" ; 

     System.out.print("\n This program prints inventory. Please, select from" 
        + "\n the following menu by typing in a letter. ") ; 

     while (user_selection.charAt(0) != 'e') 
     { 
     System.out.print("\n\n p Print inventory." 
         + "\n e Exit the program.\n\n ") ; 

     user_selection = keyboard.nextLine() ; //error concerning this line 

    if (user_selection.charAt(0) == 'p') 
    { 

     System.out.print("\n Please insert your serial number: ");    

     Scanner keyboard = new Scanner(System.in) ; 
     int given_id = keyboard.nextInt() ; 
     int products_index = 0 ; 

      boolean table_search_ready = false ; 

     while (table_search_ready == false) 
     { 

     if (products_index >= products_table.length) 
     { 

      table_search_ready = true ; 

         System.out.print("\n Sorry, no such product id " 
          + given_id + ".\n") ; 
     } 

     else if (products_table[ products_index ].get_id() == given_id) 
     { 

      products_table[ products_index ].print_products_data() ; 

      table_search_ready = true ; 
     } 



     else 
     { 
      products_index ++ ; 
      } 
+0

Заявили вы переменную клавиатуры в любом месте? –

+0

У меня эти два утверждения на самом верху: import java.util.Scanner; импорт java.util. *; –

+0

Это просто операторы импорта, рассказывающие компилятору, где он может найти что-то, а не создавать переменные –

ответ

2

переменная keyboard не была определена.

То есть, вы используете его ...

user_selection = keyboard.nextLine() ; 

до того, как определено

Scanner keyboard = new Scanner(System.in) ; 
+1

yesss you're the man thank's –

0

Вы должны объявить keyboard перед его использованием. Вы можете переместить эту строку перед первым временем цикла:

Scanner keyboard = new Scanner(System.in) ; 
0

Вы никогда не определили keyboard. Похоже, вы используете его в качестве сканера. В этом случае, вероятно, будет определен как

Scanner keyboard=new Scanner(System.in); 

, которые должны быть перед тем вы пытаетесь использовать keyboard

Смежные вопросы