我正在尝试使这些测试数字是否为质数,但这不起作用。我已经尝试了我所知道的所有东西,但是没有一个起作用。
代码如下:
class Main {
public static void main(String[] args) {
int subject;
subject = 17;
int test;
test = 2;
boolean tf;
tf = true;
while(test < subject-1){
if (subject % test == 0); {tf = false;}
test = test + 1;
}
}
任何有关如何使其正常工作的提示都值得赞赏。
答案 0 :(得分:1)
如果删除;,您的代码将起作用。在您的代码正常工作之后
if (subject % test == 0) {tf = false;}
最后添加:
System.out.println(tf);
如果打印true
,则您的subject
是质数;如果打印false
,则不是质数。
(尽管您的代码有效,但这远不是检测质数的最有效方法。)
您可以运行以下代码来查看%运算符的工作方式。这可能有助于您的理解:
System.out.println(17 % 15); // --> 2
System.out.println(17 % 16); // --> 1
System.out.println(17 % 17); // --> 0
System.out.println(17 % 18); // --> 17
答案 1 :(得分:1)
您只是弄错了半冒号。
if (test < subject - 1)--->;<--- {
这是正确的代码:
class Main {
public static void main(String[] args) {
int subject;
subject = 17;
int test;
test = 2;
boolean tf;
tf = true;
while(test < subject-1){
if (subject % test == 0){
tf = false;
}
test = test + 1;
}
}