🟢 Tier B・延伸組合技巧

迴圈與累加器

M0-04 迴圈與累計

1什麼是迴圈與累加器

如果要你把 1 加到 100,你不會想一行一行手動寫「1+2+3+……+100」,你會希望有個方法可以「重複做同一件事很多次」——這就是迴圈(Loop):把一段動作重複執行,直到滿足某個次數或條件為止。

但迴圈本身只是「重複做」,如果你想要迴圈記住前面做過的結果(例如記住目前加到多少了),就需要一個額外的變數,在每一次重複時更新它——這個變數叫「累加器」(也可能是累乘、累計次數,統稱「狀態變數」)。迴圈負責「重複」,累加器負責「記憶」,這兩個東西合在一起,是你之後幾乎所有題目都會用到的最基本組合技——不管是加總、找最大值、統計次數,骨架都是同一套:一個變數存目前的狀態,一個迴圈每一輪更新它。

開始
累加器 = 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 正本。