在撰寫 Java 程式時,有時會遇到點擊 IDE 的「Run」按鈕後完全沒有反應,控制台也沒有任何輸出,甚至沒有報錯訊息。這通常是因為程式進入點 main 方法的簽名不正確,導致 JVM 無法識別並啟動程式。
import java.util.Scanner;
public class sushu {
private boolean isPrime(int n) {
int i = 0;
while (true) {
if (i == 2) break;
for (int t = 1; t < n; t++) {
if (n % t == 0) {
i++;
}
}
}
return true;
}
// 錯誤:缺少 static 修飾符,參數名拼寫錯誤
public void main(String[] agrs) {
System.out.println("To determine whether primes");
System.out.println("Please enter the number :");
Scanner in = new Scanner(System.in);
int n = in.nextInt();
if (isPrime(n)) {
System.out.println("The number is primes");
}
}
}
public static void main(String[] args),若缺少 static,JVM 找不到入口。args,原代碼寫成 agrs。isPrime 方法的判斷邏輯有缺陷,會導致無限循環或錯誤結果。import java.util.Scanner;
public class sushu {
// 建議改為 static,方便 main 直接調用
private static boolean isPrime(int n) {
if (n <= 1) return false;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) return false;
}
return true;
}
// 標準 main 方法簽名
public static void main(String[] args) {
System.out.println("To determine whether primes");
System.out.println("Please enter the number :");
Scanner in = new Scanner(System.in);
int n = in.nextInt();
if (isPrime(n)) {
System.out.println("The number is prime");
} else {
System.out.println("The number is not prime");
}
in.close(); // 良好習慣:關閉 Scanner
}
}
main 加上 static 修飾符argsisPrime 算法:只需檢查到 sqrt(n),並處理 n <= 1 的情況else 分支與資源關閉修正後,程式即可正常編譯運行,並在控制台等待輸入並輸出判斷結果。