1什麼是迴圈與累加器
如果要你把 1 加到 100,你不會想一行一行手動寫「1+2+3+……+100」,你會希望有個方法可以「重複做同一件事很多次」——這就是迴圈(Loop):把一段動作重複執行,直到滿足某個次數或條件為止。
但迴圈本身只是「重複做」,如果你想要迴圈記住前面做過的結果(例如記住目前加到多少了),就需要一個額外的變數,在每一次重複時更新它——這個變數叫「累加器」(也可能是累乘、累計次數,統稱「狀態變數」)。迴圈負責「重複」,累加器負責「記憶」,這兩個東西合在一起,是你之後幾乎所有題目都會用到的最基本組合技——不管是加總、找最大值、統計次數,骨架都是同一套:一個變數存目前的狀態,一個迴圈每一輪更新它。
開始
累加器 = 0
累加器 = 0
→
迴圈第 1 輪
累加器 += 數字
累加器 += 數字
→
迴圈第 2 輪
累加器 += 數字
累加器 += 數字
→
…重複 N 次…
→
結束
輸出累加器
輸出累加器
🆕 補充圖解:迴圈每繞一圈,就把新的數字「疊加」進累加器一次,繞完才輸出最終結果新增
2核心概念,依課程題目的順序拆解
1
最單純的迴圈——重複輸出
你要做的事:輸入一個正整數 N,依序輸出 1 到 N 的所有整數。這是最基礎的迴圈,還不需要累加器——每一輪迴圈只是把「目前的數字」印出來,不需要記住前面發生過什麼。
從1數到N(JSL01-D01)
2
每一輪都做一次計算,但不用「累積」
你要做的事:輸入一個整數 N,輸出 1 到 9 的乘法表結果(N 乘以 1 到 9)。這一題每一輪迴圈都要做一次乘法計算,但每一輪的結果是獨立輸出的,不需要跟前面幾輪的結果加在一起——先分清楚「迴圈裡面做計算」跟「迴圈裡面累加」是兩件不同的事,再進到下一個概念。
九九乘法(A-07-0)
3
累加器登場——用一個變數記住「目前的總和」
你要做的事:計算 1+2+3+...+N 的總和。這是累加器的標準寫法:① 先準備一個變數(例如「總和」),初始值設為 0 ② 迴圈每跑一輪,就把「目前的數字」加到「總和」上 ③ 迴圈跑完之後,「總和」裡存的就是最終答案。
0
1
3
6
10
🆕 補充圖解:累加器「總和」隨每一輪迴圈逐步長大,0→1→3→6→10新增
1到N加總示範(JSL01-D02)
⚠️ 常見誤區
忘記把累加器的初始值設對——如果忘記先把「總和」設為 0(或用了上一題殘留的值),後面每一輪加出來的結果都會是錯的。累加器一定要在迴圈開始「之前」就先給好初始值。4
累加的資料不是自己算出來的,是使用者輸入的
你要做的事:讀入 N 個整數,計算這 N 個整數的總和。跟概念 3 的差別是:這次每一輪要累加的數字是使用者一個一個輸入進來的,不是你自己用迴圈變數算出來的(例如概念 3 是加 1、2、3……本身,這一題是加使用者輸入的任意數字)。
N個數字累加(JSL01-P01)
5
累加前先判斷條件——不是每個數字都要加
你要做的事:讀入 N 個整數,只把其中的偶數加總後輸出。這一題在累加器的基礎上多了一個條件判斷:每一輪迴圈先檢查這個數字符不符合條件(是不是偶數),符合才累加,不符合就跳過。這個「迴圈裡面先判斷、符合才更新累加器」的組合,之後在 M1-03「清單統計」會大量用到。
只加偶數(JSL01-P02)
⚠️ 常見誤區
忘記「不符合條件的數字」也要繼續跑完整個迴圈(只是不累加),而不是整個迴圈提前結束——迴圈的「重複」跟累加器的「要不要更新」是分開的兩件事。6
累加器不一定是「加」——也可以是「乘」
你要做的事:計算 1×2×3×...×N(階乘)。做法幾乎跟概念 3 一模一樣,只是累加器的初始值要設成1(不是 0——如果初始值設成 0,乘出來的結果永遠是 0),每一輪不是「加上」而是「乘上」目前的數字。
簡化階乘(A-06-0)連續加總(A-06-1)連續乘積(A-07-1)
⚠️ 常見誤區
累乘的初始值也設成 0——這是最容易犯的錯,任何數字乘以 0 都是 0,累乘的初始值一定要是 1,累加的初始值才是 0。7
文字包裝的應用題——先看懂題目在問累加器的哪一種
你要做的事:「跳繩比賽法」把「讀入 N 個數字並加總」包裝成體育課情境,考驗你能不能從故事敘述中認出「這其實就是概念 4 的累加器」。
跳繩比賽法(A-08-0)
8
累加器的變形——不是加總,是「隨時更新最大值」
你要做的事:找出 N 筆成績中的最大值(甚至同時找最大值與最小值)。這是累加器思維的另一種變形:不是把每個數字加起來,而是每一輪都拿目前的數字跟「目前記錄到的最大值」比較,比較大就更新。這個套路,之後在找最大值/最小值、排序法(選擇排序)都會反覆出現。
找最大值(A-08-1)找最大最小值
3建議練習順序對照表
| 順序 | 概念 | 題目 | 課程 |
|---|---|---|---|
| 1 | 最基本迴圈 | 從1數到N(JSL01-D01) | M0-04 |
| 2 | 迴圈內計算(不累加) | 九九乘法(A-07-0) | M0-04 |
| 3 | 累加器:加總 | 1到N加總示範(JSL01-D02) | M0-04 |
| 4 | 累加使用者輸入的資料 | N個數字累加(JSL01-P01) | M0-04 |
| 5 | 累加+條件判斷 | 只加偶數(JSL01-P02) | M0-04 |
| 6 | 累加器:累乘 | 簡化階乘/連續加總/連續乘積 | M0-04 |
| 7 | 應用題辨識 | 跳繩比賽法(A-08-0) | M0-04 |
| 8 | 累加器變形:找最大/最小 | 找最大值/找最大最小值(A-08-1起) | M0-04 |
🆕 本頁新增內容說明
以下視覺元素為 Cowork 潤飾時新增,MD 正本中沒有:① 迴圈+累加器流程圖 ② 概念3的累加器數值變化格子圖(0→1→3→6→10)。內容準確性已核對,若確認保留,建議之後補進 MD 正本。