2013-12-10 6 views
0

Это код. Я даю ошибку, где находится коммутатор. Пожалуйста помоги. Может быть, ссылка на сайт, где я могу это узнать.Пытается создать простое меню java, но его не работает

public class Main{ 
public static void main(String[] args) { 
    int swValue; 

    System.out.println("***************************************Menu***************************************"); 
    System.out.println("Spauskite 1 jei norite atspauzdinti programje sukurtu objektu sarasus"); 
    System.out.println("Spauskite 2 jei norite sukurti naujus objektus, ju duomenis ivedant is klavieturos"); 
    System.out.println("Spauskite 3 jei norite iskviesti objektu metodus"); 

    switch (swValue) { 
    case 1: System.out.println("1 Selected"); 
     break; 
    case 2: System.out.println("2 Selected"); 
     break; 
    case 3: System.out.println("3 Selected"); 
     break; 
    default: System.out.println("Invalis selection"); 
    break; 
    } 
+0

не большая часть меню, если пользователь не может выбрать вариант первый (он же: попросите пользователя и инициализировать 'swValue' с тем, что пользователь говорит вам) –

ответ

2

Это ошибка компилятора использовать локальную переменную перед его инициализации, и вы не инициализировать его.

Похоже, вы захотите прочитать ввод пользователя и инициализировать swValue перед оператором switch.

+0

Может у дать мне пример, как это исправить ? – user3088057

+1

Есть много способов, но два с головы: 1) Инициализировать его до некоторого значения с помощью 'int swValue = 0;', но здесь это не очень полезно. 2) Используйте «Сканер», чтобы прочитать ввод пользователя и присвоить значение 'swValue'. – rgettman

+0

Еще несколько способов: 3) Использовать 'BufferedReader' для чтения пользовательского ввода, конвертируя его в' int' с 'Integer.parseInt'. 4) Прочитайте параметр командной строки в параметре 'args'' main' и преобразуйте его в 'int'. 5) Используйте 'JOptionPane', чтобы спросить пользователя через диалоговое окно и преобразовать ответ в' int'. – rgettman

0

swValue не инициализирован, то есть нет значения, назначенного ему. Итак, как вы можете сравнить его со всем?

Если вы хотите, чтобы получить значение от пользователя, вы можете сделать что-либо:

  1. Accept swValue в качестве parameter:

    недействительного основного (String [] арга, внутр swValue)

  2. Используйте классы Scanner или BufferedReader, чтобы получить ввод во время выполнения.

1

Попробуйте создать какое-то входное считывание;

//print out menu options 

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 

    try { 
     swValue = Integer.parseInt(br.readLine()); 
    } catch (IOException ioe) { 
     ioe.printStackTrace(); 
    } 

    //switching code 
Смежные вопросы