Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 接收';其他';没有';如果';错误_Java - Fatal编程技术网

Java 接收';其他';没有';如果';错误

Java 接收';其他';没有';如果';错误,java,Java,不是100%确定我为什么会出错。我看到有人说要从“if”语句中删除分号,但当我运行程序并键入命令时,什么也不会执行。如果任何内容的格式不正确,很抱歉 import javax.swing.JOptionPane; public class Cortana2 { public static void main(String[] args) throws Exception { //Declaring Variables (Add more commands)

不是100%确定我为什么会出错。我看到有人说要从“if”语句中删除分号,但当我运行程序并键入命令时,什么也不会执行。如果任何内容的格式不正确,很抱歉

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\"");    
        }
    }
}
不要在if/else语句末尾加“;”

但是当我运行程序并输入命令时,什么也不会执行

不要使用
==
来比较字符串

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

此外,变量名不应以大写字符开头

不要在if/else语句末尾加“;”

但是当我运行程序并输入命令时,什么也不会执行

不要使用
==
来比较字符串

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


此外,变量名不应以大写字符开头。

在每个测试的末尾都有一个无关的分号

if (command == null);

else如果(command==League);// 每个测试结束时都有一个无关的分号

if (command == null);

else如果(command==League);// 如果代码后面的Use equals方法如下所示,请从If、Else中删除分号

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

如果代码后面的Use equals方法如下所示,请从If、Else中删除分号

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

非常感谢你!我很惊讶人们回答得这么快。我现在唯一的问题是null命令不能正常工作。它应该创建一个文本框,说明命令无效,但它只是关闭输入框并结束程序。有什么想法吗?@PLUR,
基本调试技术
(而不是每次遇到问题都在论坛上提问)。是否显示了命令变量的值(使用System.out.println())?如果为空,则显示为空。否则我会猜这个值是一个空字符串(“”)。顺便说一下,我不是说null是一个命令。很抱歉。我的措辞不是最好的。但假设它按如下方式运行:如果您键入League,它将执行League客户端,与Steam相同。但是,如果您没有键入有效的命令,或者将其完全保留为空,它将显示消息。Null表示不正确?@PLUR,
Null表示不正确?
-不,不正确。
JOptionPane.showInputDialog()
返回一个字符串。它可以是空字符串,也可以是空字符串。阅读API中的文档。如果不清楚,则需要进行一些基本调试。不要假设该值为null。为什么还要关心null呢。您应该首先检查两个有效值,如果不是两个有效值之一,则else语句将显示错误对话框。如果有人键入“a”并点击回车键会怎么样?这也是一个无效的命令。非常感谢!我很惊讶人们回答得这么快。我现在唯一的问题是null命令不能正常工作。它应该创建一个文本框,说明命令无效,但它只是关闭输入框并结束程序。有什么想法吗?@PLUR,
基本调试技术
(而不是每次遇到问题都在论坛上提问)。是否显示了命令变量的值(使用System.out.println())?如果为空,则显示为空。否则我会猜这个值是一个空字符串(“”)。顺便说一下,我不是说null是一个命令。很抱歉。我的措辞不是最好的。但假设它按如下方式运行:如果您键入League,它将执行League客户端,与Steam相同。但是,如果您没有键入有效的命令,或者将其完全保留为空,它将显示消息。Null表示不正确?@PLUR,
Null表示不正确?
-不,不正确。
JOptionPane.showInputDialog()
返回一个字符串。它可以是空字符串,也可以是空字符串。阅读API中的文档。如果不清楚,则需要进行一些基本调试。不要假设该值为null。为什么还要关心null呢。您应该首先检查两个有效值,如果不是两个有效值之一,则else语句将显示错误对话框。如果有人键入“a”并点击回车键会怎么样?这也是一个无效的命令。