簡體   English   中英

素數測試初學者Java

[英]Prime Number test beginner 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 = true);
{
System.out.println (num + "is a prime number ");
}
else
{
System.out.prinln (num + "is not a prime number ");
}
}
}
}

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 < num)而不是while (i<=num) ,否則 some (last) i總是等於num ,使一切都不是素數
  3. 當 flag 為真時,數字不是素數。 您可能應該反轉if邏輯。 當您找到可整除的東西時,Flag 為真,這意味着該數字不是素數。

有更好的解決方案,但我堅持你的格式。

你有幾個不同的問題:

首先,它應該是:

public static void main(String[] args){

其次,第 4 行的變量沒有名稱。

你的 do while 語句的格式也不太正確。

另一張海報在這里有一個很好的 do while 循環示例: Do-while 循環 java 解釋

此外,請查看分號放置位置的規則。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM