2013-11-04 89 views
0

在我的程序中,我試圖根據String args [0]的值循環特定的操作。我有一個條件樹設置,但無論args [0]是什麼,它總是選擇最後一個選項而不是我希望的選項。命令行參數未被正確識別

下面是相關代碼:

public static void main(String[] args) 
{ 
    int a = Integer.parseInt(args[1]); 
    int b = Integer.parseInt(args[2]); 
    int c = Integer.parseInt(args[3]); 
    int d = Integer.parseInt(args[4]); 

    for (int i = -a; i <= a; i++) 
    { 
     for (int j = -b; j <= b; j++) 
     { 
      for (int k = -c; k <= c; k++) 
      { 
       for (int l = -d; l <= d; l++) 
       { 
        if (args[0] == "rational-class") 
         rationalClass(a,b,c,d); 
        else if (args[0] == "rational-instance") 
         rationalInstance(a,b,c,d); 
        else if (args[0] == "complex-class") 
         complexClass(a,b,c,d); 
        else if (args[0] == "complex-instance") 
         complexInstance(a,b,c,d); 
        else 
         System.out.println("error"); 
       } 
      } 
     } 
    } 

} 
+0

字符串與'=='比較;嘗試使用.equals – crownedzero

回答

1

嘗試兩個字符串的equals方法比較,即

if (args[0].equals("rational-class") 
+1

作爲一般說明,首先與常量比較比較安全, ''rational-class「.equals(args [0])'作爲一個明確定義的equals方法不會拋出NullPointerException,但args [0]可能爲空。 – drobert

+0

aaaaaand我覺得很傻 感謝的人,它的工作就像一個魅力。 –

+1

它發生了... 好運,兄弟.. – user2927391

0

如果它是你比較適合你精氨酸字符串[0],你需要做這樣的事情。

args[0].equals("......")