2015-10-17 121 views
0

試圖創建一個素數測試儀如下面的代碼,但是當我在終端窗口中輸入java isPrime(9),我得到Java輸入錯誤:附近有語法錯誤意外的標記

-bash: syntax error near unexpected token `(' 

我想要的代碼可以讀取這兩種truefalse回我。

有人也可以向我解釋main method的功能,因爲我猜我的用戶輸入首先被main method捕獲,然後傳遞給任何其他引用的方法。或者它是在代碼中放置main method的問題,即將main method置於頂部(或者在Java中與此無關)?

這是代碼。

java isPrime 9 

命令行參數不被括號中傳遞:

public class isPrime { 

public static boolean isPrime(int N){ 
    for (int i=3; i == N/2; i++){ 
     if (N%i==0) 
      return true; 
    } 
    return false; 
} 

public static void main (String [] args){ 
    int N = Integer.parseInt(args[0]); 
    System.out.println(isPrime(N)); 
    } 

} 

回答

2

你應該運行它。

1

爲什麼java isPrime(9)會導致錯誤?那麼,bash shell特別對待()。要了解更多信息,請閱讀此問題的答案 - How to use double or single brackets, parentheses, curly braces

你可以引用括號來強制bash放棄它的特殊處理()。類似java 'isPrime(9)'。但是這會打印另一個錯誤:Error: Could not find or load main class isPrime(9)

剛剛發生了什麼? java命令期望被調用爲java [options] MainClass [arg1 arg2 arg3...]java之後的第一個單詞不是以-開頭,它是要執行的類。命令行中的其餘字詞可在main(String []args)函數中作爲args[]使用。

因此,如果要執行輸入爲9的isPrime類中的代碼,則正確的語法是java isPrime 9