首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 基礎練習:輸出 1-100 間的偶數,每行 5 個的格式化實現

     編輯:Java 相關知識

經典入門練習,考察循環控制、條件判斷、格式化輸出三大基礎語法。本文提供標準實現並解析關鍵技術點。

標準實現代碼

/**
 * 輸出 1 到 100 中的偶數,每行顯示 5 個
 * @author 趙學慶 www.java2000.net
 */
public class EvenNumberPrinter {
    public static void main(String[] args) {
        int count = 0;  // 行內計數器
        for (int i = 1; i <= 100; i++) {
            if (i % 2 == 0) {  // 1. 判斷偶數
                System.out.printf("%3d", i);  // 2. 格式化輸出,佔 3 字符寬度右對齊
                count++;
                if (count % 5 == 0) {  // 3. 每 5 個換行
                    System.out.println();
                }
            }
        }
    }
}

關鍵技術點解析

1. 偶數判斷:i % 2 == 0

  • 取模運算符 % 返回除法餘數
  • 偶數定義:能被 2 整除的整數
  • 等價位運算寫法:(i & 1) == 0(性能微優,現代 JIT 已優化無差異)

2. 格式化輸出:printf("%3d", i)

  • %3d:十進制整數,最小寬度 3,右對齊,不足左補空格
  • 輸出效果: 2、 10、100 對齊整齊
  • 對比 print:無需手動拼接空格,語義更清晰

3. 換行控制:count % 5 == 0

  • 引入行內計數器 count,而非直接用 i % 10 == 0
  • 原因:i 步長為 1,偶數間隔 2,i % 10 會在 10、30、50... 換行(第 5、15、25... 個偶數),邏輯易誤
  • count 專門計數已輸出偶數個數,語義精確

運行結果

  2  4  6  8 10
 12 14 16 18 20
 22 24 26 28 30
 32 34 36 38 40
 42 44 46 48 50
 52 54 56 58 60
 62 64 66 68 70
 72 74 76 78 80
 82 84 86 88 90
 92 94 96 98100

進階變體:Java 8 Stream 風格

import java.util.stream.IntStream;

public class EvenNumberPrinterStream {
    public static void main(String[] args) {
        IntStream.rangeClosed(1, 100)
                 .filter(i -> i % 2 == 0)
                 .forEach(i -> {
                     System.out.printf("%3d", i);
                     if (i % 10 == 0) System.out.println();  // 此處 i 為偶數,i%10==0 等價於第 5 個
                 });
    }
}

注意:Stream 版本中 i % 10 == 0 成立,因為流已過濾出偶數,i 序列為 2,4,6,8,10... 第 5 個恰好是 10 的倍數。

常見錯誤避坑

錯誤代碼問題修正
if (i % 5 == 0) 直接換行i 為 5、15、25... 非偶數,或 10、20... 但漏掉 2,4,6,8引入獨立計數器
System.out.print(i + " ")數字寬度不一,列不對齊使用 printf("%3d") 或 String.format
循環 i += 2 但起始 i=0輸出 0,2,4... 不符合「1 到 100」題意起始 i=2 或保持 i=1 配合 if

總結

這道題雖簡單,卻完整覆蓋了循環遍歷、條件篩選、格式化輸出、狀態計數四大基礎編程技能。建議初學者手寫 3 遍:C 風格 for、while 版、Stream 版,體會不同抽象層級的表達力差異。

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