2016-11-13 4 views
0
import javax.swing.JOptionPane; 

public class Cortana2 { 

    public static void main(String[] args) throws Exception { 
     //Declaring Variables (Add more commands) 
     String command; 
     // Command will always stay the same 
     // All strings below are commands to put in 
     String Steam; 
     String League; 
     League=("League"); 
     Steam=("Steam"); 
     command= JOptionPane.showInputDialog("Give a valid command"); 

     if (command == null) { 
      JOptionPane.showMessageDialog(null, "This is not a valid command. If you have forgotten what commands are valid, please refer to Devon for assistance"); 
      JOptionPane.getRootFrame().dispose(); 
     } else if (command == League) { 
      Runtime.getRuntime().exec("\"D:/LeagueClient.exe\""); 
     } else if (command == Steam) { 
      Runtime.getRuntime().exec("\"C:/Program Files (x86)/Steam/Steam.exe\"");  
     } 
    } 
} 

Не на 100% уверен, почему я получаю сообщение об ошибке. Я видел, как другие сказали удалить точки с запятой из операторов if, но тогда ничего не выполняется при запуске программы и вводе команд. Извините, если что-то кажется плохо отформатированным.Получение ошибки «else» без «if»

ответ

3
if (command == null); 

Не ставьте ";" в конце ваших операторов if/else.

но ничего не выполняет, когда я запустить программу и ввести команды

Не используйте == для сравнения String.

Вместо этого используйте String.equals(...) методы

Также имена переменных не должны начинаться с верхним регистром символом.

+0

Спасибо так много! Я удивлен, как быстро люди ответили. Моя единственная проблема сейчас в том, что моя команда null работает неправильно. Он должен создать текстовое поле, в котором говорится, что команда недопустима, но вместо этого она просто закрывает окно ввода и завершает программу. Есть идеи? – PLUR

+0

@PLUR, 'Основная технология отладки' (вместо того, чтобы задавать вопрос на форуме каждый раз, когда у вас есть проблема). Вы отображали значение командной переменной (используя System.out.println())? Если он равен нулю, он будет отображаться как null. В противном случае я бы предположил, что это значение является пустой строкой (""). – camickr

+0

Ну, я не имел в виду, что null - это команда. Извини за это. Моя формулировка не самая лучшая. Но он должен работать следующим образом: если вы введете Лигу, она будет выполнять клиент Лиги, то же самое с Steam. Однако, если вы не введете правильную команду или не оставьте ее пустой, она покажет сообщение. Нуль означает ничего правильного? – PLUR

1

Вы посторонняя точка с запятой в конце каждого теста

else if (command == League); // <- remove these semicolons 

Вы также будете иметь скорбь, используя == для сравнения строк. Вместо этого используйте .equals().

0

Удалить Запятой Из If, Else If Использование метода равна После Ваш код выглядит следующим образом ..

command= JOptionPane.showInputDialog("Give a valid command") 

     { 
       if (command.equals(null) 
       {   
       JOptionPane.showMessageDialog(null, "This is not a valid command. If you have forgotten what commands are valid, please refer to Devon for assistance"); 
       JOptionPane.getRootFrame().dispose(); 
       }else if (command.equals(League)) 
       { 
       Runtime.getRuntime().exec("\"D:/LeagueClient.exe\""); 
       }else if (command.equals(Steam)) 
       { 
       Runtime.getRuntime().exec("\"C:/Program Files (x86)/Steam/Steam.exe\""); 
       } 

     System.exit(0); 
     } 
Смежные вопросы