【问题标题】:Prime Number test beginner Java素数测试初学者Java
【发布时间】:2020-09-10 00:26:53
【问题描述】:

用于测试正数(称为 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 ");
}
}
}
}

【问题讨论】:

  • if (flag = true); 中的两个错误 1) 您正在 >> 分配 flag。 = 应该是 ==,或者更好的是 if (flag)。 2)分号不应该在那里。它使“if”语句的“then”部分成为空语句!!!
  • 要在这里提出一个好问题,请指定您未预料到的情况或未发生的情况。说出你做了什么来尝试自己弄清楚。你更有可能得到答案,而且在很多情况下你会自己弄清楚。如果您确实发布了一个问题并获得了答案,请对任何有帮助的内容进行投票,并将其中一个勾选为“最早的最佳”答案。
  • 其他错误表明代码甚至无法编译。你已经硬连线n 成为其中之一。而且 one 不是素数……根据定义。
  • 无关,但正确的格式使代码更容易阅读和思考。
  • 请编辑问题以正确缩进您的代码。如果您不付出一点努力,您如何期望人们自愿帮助您?

标签: java


【解决方案1】:

1。主函数签名

应该是

public static void main(String args[])

不是

public static main void (String args[])

2。变量名不能以数字开头

int 2 = 0;

你可能是说

int i = 0;

3。 do { ... } while(...);

do while 循环的格式是

do {
  something();
} while (condition);

4。分号表示语句结束

while (condition); {
  something();
}

在这种情况下,something() 不在您的 while 循环中

5。注意if中的分配

if (flag = true)

这是将flag 分配给true。并且条件始终为真(因为赋值的结果为真)。

6。不是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 ");
        }
    }
}

我还修复了一些逻辑问题,例如

  1. 您可能应该增加i 而不是num
  2. while (i &lt; num) 而不是 while (i&lt;=num),否则一些(最后)i 总是等于 num,使得一切都不是素数
  3. 当标志为真时,数字不是素数。您可能应该反转 if 逻辑。当您找到可整除的东西时,标志为真,这意味着该数字不是质数。

有更好的解决方案,但我坚持你的格式。

【讨论】:

    【解决方案2】:

    你有几个不同的问题:

    首先应该是:

    public static void main(String[] args){
    

    其次,第 4 行的变量没有名称。

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

    另一张海报在这里有一个 do while 循环的好例子: Do-while loop java explanation

    另外,请仔细阅读分号放置位置的规则。

    【讨论】:

      猜你喜欢
      • 2010-10-03
      • 1970-01-01
      • 1970-01-01
      • 2014-11-12
      • 2015-04-27
      • 2014-06-21
      • 1970-01-01
      • 2013-12-31
      • 1970-01-01
      相关资源
      最近更新 更多