为什么下面的参数在未输入Java时显示?

为什么下面的参数在未输入Java时显示?,java,Java,我试图在Eclipse中运行此代码,但每当我尝试仅使用参数-es运行时,就好像我输入了-es和-h。代码如下: public class Option { public static void main( String[] args ) { if ( args[0].equals("-en") ) { System.out.println( "Langauge is set to English") ; }

我试图在Eclipse中运行此代码,但每当我尝试仅使用参数
-es
运行时,就好像我输入了
-es
-h
。代码如下:

public class Option
{
    public static void main( String[] args )
    {
        if ( args[0].equals("-en") )
        {
            System.out.println( "Langauge is set to English") ;
        }
        else if ( args[0].equals("-es") )
        {
            System.out.println( "El idioma es espanol") ;
        }
        else if ( args[0].equals("h") ) ;
        {
            System.out.print( "\tHelp\n\n\t-es\tSpanish\n\t-en\tEnglsish" ) ; 
        }
    }
}

消除
在此行中:

else if ( args[0].equals("h") ) ;
Java将分号视为
else if
的主体,并始终执行其后大括号中的块


删除分号将允许后面大括号中的块被视为
的块,如果
,则将其视为
的块,这正是您的意图。

这是一个输入错误:您有一个
if
语句后的code>

去掉它,它就会工作

这种情况经常发生:D