2016-11-13 74 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」語句中刪除分號的地方,但是當我運行程序並輸入命令時沒有任何執行。對不起,如果有什麼似乎格式不正確。收到沒有'if'錯誤的'else'

回答

3
if (command == null); 

不要放一個「;」在你的if/else語句結束時。

但是當我運行該程序,鍵入命令

不要使用==比較字符串沒有執行。

而是使用String.equals(...)方法

而且變量名不應以大寫字母開頭。

+0

太謝謝你了!我很驚訝人們回答的速度。我現在唯一的問題是我的空命令無法正常工作。它應該創建一個文本框,指出該命令無效,而是關閉輸入框並結束程序。有任何想法嗎? – PLUR

+0

@PLUR,「基本調試技術」(而不是在每次遇到問題時在論壇中提問)。你顯示了命令變量的值(使用System.out.println())嗎?如果它爲空,它將顯示爲空。否則,我猜這個值是一個空的String(「」)。 – camickr

+0

嗯,我不是說null就是一個命令的方式。對於那個很抱歉。我的措辭不是最好的。但它的運行方式如下:如果您輸入聯盟,則執行聯盟客戶端,與Steam相同。但是,如果您未輸入有效的命令,或者完全保留空白,則會顯示該消息。 Null意味着什麼是正確的? – PLUR

1

你必須在每個測試

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

你也將擁有使用==比較字符串悲傷的結尾外來分號。改爲使用.equals()

0

刪除分號如果,否則,如果使用equals方法後,您的代碼看起來像這樣..

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