簡體   English   中英

Java類無法編譯

[英]Java class won't compile

我是編程的新手,並且嘗試將PHP算法轉換為Java。

function isPrime($n)
{
$i = 2;

if ($n == 2) {
    return true;    
}

while ($i < $n) {
    if ($n % $i == 0) {
        return false;
    }
    $i++;
}

return true;
}
for ($i = 3; $i < 100; $i++) {
if (isPrime($i)) {
    echo $i;
}
}

到目前為止,我唯一想出的就是這個。

public class Primtal {
public static boolean isPrime(int n) 
{
    int i = 2;

    if (n == 2) {
        return true;    
    } 
    while (i < n) {
        if ( n % i == 0) {
            return false;
        }
        i++;
    }

    return true;
}

for(int i = 3; i < 1000; i++){
    if (isPrime(i)) {
        System.out.print(i);
    }
}
}

我意識到這種外觀確實很愚蠢,但我確實需要使它起作用。 我認為問題主要出在for循環上,因為即時通訊目前在此處出現錯誤的非法起始類型。 我不確定如何將其轉換為Java,我將不勝感激。

我相信您的代碼存在的問題是,您在class聲明的中間放置了一個for循環,這是不正確的-它必須位於某個方法內部。 在這種情況下,將其放在main()似乎很合邏輯,因此在運行程序時將執行它。 也許是這樣的:

public class Primtal
{
    public static boolean isPrime(int n) 
    {
        int i = 2;

        if(n == 2)
        {
            return true;    
        } 

        while(i < n)
        {
            if(n % i == 0)
            {
                return false;
            }

            i++;
        }

        return true;
    }

    public static void main(String[] args)
    {
        for(int i = 3; i < 1000; i++)
        {
            if(isPrime(i))
            {
                System.out.print(i);
            }
        }
    }
}

(請注意,在代碼的后半部分添加了public static void main(String[] args) 。)

Oracle提供了有關如何構建Java程序以及該語言其他基礎知識的官方教程。 您可以在此處找到與main方法相關的一種。 或者,從頭開始,完整的教程從此處開始。

你不能寫for循環

for(int i = 3; i < 1000; i++){
    if (isPrime(i)) {
        System.out.print(i);
    }
}

直接在class

我相信你想做的是有一個main方法,其中你可以有for循環

您的for循環需要位於某種方法內,因此可以將其放入main方法中:

public class Primtal {

    public static void main(String [] args)
    {                
        for(int i = 3; i < 1000; i++)
        {
            if (isPrime(i)) {
            System.out.print(i);
        }
    }

    public static boolean isPrime(int n) 
    {
        int i = 2;

        if (n == 2) {
            return true;    
        } 
        while (i < n) {
            if ( n % i == 0) {
                return false;
            }
            i++;
        }

        return true;
    }

}

問題是您的for循環不在方法中。 將其包含在main方法中。

public static void main(String[] args) {
   // Your for loop here
}

另外,將print更改為println ,否則所有數字將串聯在一起顯示。

暫無
暫無

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

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