尝试创建一个Prime数字测试器,如下面的代码,但当我在终端窗口中输入java isPrime(9)
时,我得
-bash: syntax error near unexpected token `('
我希望代码能够将true
或false
读回给我。
有人也可以向我解释main method
的功能,因为我猜我的用户输入首先由main method
捕获,然后传递给任何其他引用的方法。或者是main method
放置在代码中的问题,即将main method
置于顶部(或者在java中无关紧要)?
这是代码。
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));
}
}
答案 0 :(得分:2)
你应该用:
运行它java isPrime 9
命令行参数不在括号内传递。
答案 1 :(得分: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
之后不以-
开头的第一个单词是要执行的类。命令行中的其余单词在args[]
函数中以main(String []args)
形式提供。
因此,如果要在isPrime
类中执行输入为9的代码,则正确的语法为java isPrime 9
。