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

Java 入門:如何讓用戶輸入數字並與陣列元素比較大小

     編輯:程式設計疑難解答

在 Java 程式設計中,處理用戶輸入並與陣列數據進行比較是基礎且實用的技能。本文將透過一個完整的範例,示範如何使用 Scanner 類別接收用戶輸入的整數,並將其與預先定義的整數陣列中的每個元素逐一比較,最終將比該數字大的元素存入一個新陣列,比該數字小的元素存入另一個新陣列中。

完整程式碼範例

import java.util.Scanner;
import java.util.ArrayList;
import java.util.List;

public class ArrayComparison {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 預先定義的整數陣列
        int[] numbersArray = {11, 8, 4, 9, 22, 30, 24, 23, 35, 0};
        
        System.out.println("我這裡有 10 個數字。");
        System.out.println("請輸入一個數字,我會告訴你哪些數字比它大、哪些比它小。");
        System.out.print("你的數字是:");
        
        int userNumber = scanner.nextInt();
        
        // 使用 List 動態存儲比較結果
        List largerNumbers = new ArrayList<>();
        List smallerNumbers = new ArrayList<>();
        
        // 遍歷陣列進行比較
        for (int num : numbersArray) {
            if (num > userNumber) {
                largerNumbers.add(num);
            } else if (num < userNumber) {
                smallerNumbers.add(num);
            }
            // 相等的數字根據需求可選擇是否處理
        }
        
        // 輸出結果
        System.out.println("\n比 " + userNumber + " 大的數字有:" + largerNumbers);
        System.out.println("比 " + userNumber + " 小的數字有:" + smallerNumbers);
        
        scanner.close();
    }
}

關鍵步驟解析

  1. 導入 Scanner:import java.util.Scanner; 用於讀取標準輸入。
  2. 建立陣列:int[] numbersArray = {...} 初始化包含 10 個整數的陣列。
  3. 接收輸入:scanner.nextInt() 讀取用戶輸入的整數。
  4. 動態集合:使用 ArrayList 而非固定大小陣列,因為事先不知道會有多少個數字大於或小於輸入值。
  5. 遍歷比較:使用增強型 for 迴圈 for (int num : numbersArray) 逐一比較。
  6. 分類存儲:根據比較結果將元素加入對應的 List。

進階優化建議

  • 輸入驗證:加入 hasNextInt() 檢查,防止用戶輸入非整數導致程式崩潰。
  • 排序輸出:使用 Collections.sort() 對結果 List 進行排序後再輸出,閱讀性更佳。
  • 效能考量:若陣列極大且需頻繁查詢,可先對原陣列排序,再使用二分搜尋定位分界點,時間複雜度從 O(n) 降為 O(log n)。

常見錯誤避坑指南

  • 忘記關閉 Scanner 導致資源洩漏(雖然程式結束時 JVM 會回收,但養成 scanner.close() 習慣較好)。
  • 直接使用固定大小陣列存儲結果,導致索引越界或空間浪費。
  • 忽略「等於」情況的處理邏輯,需根據業務需求決定是歸入大、小、或單獨統計。

掌握這個基本模式後,你可以輕鬆擴展到更複雜的場景,例如:從檔案讀取數據、處理浮點數比較、多條件篩選等。動手練習修改上述程式碼,嘗試加入排序功能或輸入驗證,將能更深入理解 Java 集合框架與控制流程的實際應用。

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