首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 循環讀取多行輸入直到 -1 結束

     編輯:程式設計疑難解答

需求

連續輸入多行數字,輸入 -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 方式更符合實際開發習慣。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved