素数测试初学者Java

素数测试初学者Java,java,Java,测试正数(称为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 = tr

测试正数(称为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 ");
}
}
}
}
公共类素数{
公共静态主无效(字符串参数[]){
int num=1;
int 2=0;
布尔标志=假;
做{
如果(数量%i==1){
flag=true;
中断:
}
num++

而(i你有两个不同的问题:

首先,它应该是:

public static void main(String[] args){
第二,第4行的变量没有名称

do while语句的格式也不太正确

另一张海报上有一个很好的do while循环示例:

另外,检查分号应该放在哪里的规则。

1.主函数签名 应该是

publicstaticvoidmain(字符串参数[])
不是

publicstaticmain无效(字符串参数[])
2.变量名不能以数字开头
int2=0;
你可能是说

inti=0;
3.
do{…}while(…);
do while循环的格式为

do{
某物();
}while(条件);
4.分号表示语句的结尾
while(条件){
某物();
}
在这种情况下,
something()
不在while循环中

5.注意
if
if(flag=true)
这是将
标志
分配给
。并且该条件始终为真(因为分配的结果为真)

6.非
System.out.prinln
它是
System.out.println
。使用IDE

最终解决方案
公共类素数{
公共静态void main(字符串参数[]){
int num=3;
int i=2;
布尔标志=假;
做{
如果(num%i==0){
flag=true;
打破
}
i++;
}而(i
我还修复了一些逻辑问题,例如

  • 您可能应该增加
    i
    ,而不是
    num

  • while(i
    而不是
    while(如果(flag=true)
    if中有两个bug;
    1)您正在>>分配要在此处提出一个好问题,请指定发生了您不期望的事情或没有发生您确实期望的事情。说出您自己做了什么来尝试解决它。您更有可能得到答案,并且在很多情况下都会自己解决。如果您确实发布了一个问题并得到了答案,请向上投票是有帮助的,请勾选其中一个作为“最早的最佳”答案。其他错误表明代码甚至无法编译。并且您已硬连线
    n
    为一。根据定义,一不是质数。不相关,但正确的格式使代码更易于阅读和思考。请编辑问题以正确缩进您的代码.如果你不付出一点努力,你希望人们如何自愿帮助你?
    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 ");
            }
        }
    }