if (args.length == 0) {
// 輸出 100 以內素數
} else {
// 輸出 args[0] 指定上限的素數
}
args 是 main(String[] args) 接收的命令行參數數組:
args.length == 0:用戶直接運行 java Demo,無參數args.length > 0:用戶運行 java Demo 50,args[0] = "50"public class PrimePrinter {
public static void main(String[] args) {
int limit = 100;
if (args.length > 0) {
try {
limit = Integer.parseInt(args[0]);
} catch (NumberFormatException e) {
System.err.println("參數必須為整數");
return;
}
}
printPrimes(limit);
}
static void printPrimes(int n) {
for (int i = 2; i <= n; i++) {
if (isPrime(i)) System.out.print(i + " ");
}
}
static boolean isPrime(int n) {
if (n < 2) return false;
for (int i = 2; i * i <= n; i++)
if (n % i == 0) return false;
return true;
}
}
java PrimePrinter # 輸出 100 以內素數
java PrimePrinter 50 # 輸出 50 以內素數