用于测试正数(称为num)的大学作业是否为素数。 我必须使用Do while循环 香港专业教育学院试图代码如下,但未能通过测试
public class Primes {
public static main void (String args[]){
int num = 1;
int 2 = 0;
boolean flag = false;
do {
if (num%i == 1) {
flag = true;
break:
}
num ++
while (i<=num);
{
if (flag = true);
{
System.out.println (num + "is a prime number ");
}
else
{
System.out.prinln (num + "is not a prime number ");
}
}
}
}
答案 0 :(得分:1)
应该是
public static void main(String args[])
不是
public static main void (String args[])
int 2 = 0;
您可能是说
int i = 0;
do { ... } while(...);
do while循环的格式为
do {
something();
} while (condition);
while (condition); {
something();
}
在这种情况下,something()
不在您的while循环中
if
if (flag = true)
这是将flag
分配给true
。并且条件始终为true(因为赋值的结果为true)。
System.out.prinln
它是System.out.println
。使用IDE。
public class Primes {
public static void main(String args[]) {
int num = 3;
int i = 2;
boolean flag = false;
do {
if (num % i == 0) {
flag = true;
break;
}
i++;
} while (i < num);
if (!flag) {
System.out.println(num + " is a prime number ");
} else {
System.out.println(num + " is not a prime number ");
}
}
}
我还解决了一些逻辑问题,例如
i
而不是num
,while (i < num)
而不是while (i<=num)
,否则某些(最后一个)i
始终等于num
,使所有内容都不是素数if
逻辑。当您发现可以被整除的东西时,标志为真。这意味着数字不是素数。有更好的解决方案,但我坚持使用您的格式。
答案 1 :(得分:0)
您有几个不同的问题:
首先,它应该是:
public static void main(String[] args){
第二,第4行的变量没有名称。
您的do while语句的格式也不正确。
另一位张贴者在这里有一个do while循环的好例子: Do-while loop java explanation
此外,仔细阅读分号放置位置的规则。