連續輸入多行數字,輸入 -1 結束輸入,隨後判斷每個數是否為完全平方數並輸出。
import java.util.Scanner;
import java.util.ArrayList;
import java.util.List;
public class InputUntilMinusOne {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
List<Integer> numbers = new ArrayList<>();
System.out.println("請輸入整數(每行一個),輸入 -1 結束:");
while (sc.hasNextInt()) {
int num = sc.nextInt();
if (num == -1) break;
numbers.add(num);
}
sc.close();
System.out.println("結果:");
for (int n : numbers) {
double sqrt = Math.sqrt(n);
if (sqrt == (int) sqrt) {
System.out.println(n + " 是完全平方數");
} else {
System.out.println(n + " 不是完全平方數");
}
}
}
}
Scanner.hasNextInt() 配合 nextInt() 安全讀取,避免輸入非整數拋異常。List 動態存儲,不限制輸入行數。Math.sqrt(n) 取整後平方是否等於原數(注意大數精度,long 範圍內可靠)。sc.close() 釋放資源。原答案使用固定大小數組 String[26] 和 equals("-1") 比較字符串,靈活性較差。上述 List + Scanner 方式更符合實際開發習慣。