我正在尝试在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" ) ;
}
}
}
答案 0 :(得分:6)
消除此行中的;
:
else if ( args[0].equals("h") ) ;
Java将分号视为else if
的主体,并且在它之后的大括号中的块将始终执行。
删除该分号将允许将跟随它的大括号中的块视为else if
的块,这就是您的意图。
答案 1 :(得分:2)
这是一个错字:你的第三个;
声明之后有一个if
。
删除它,它会起作用。
这种情况一直在发生:D