基礎觀念30 min read
Day 13:程式碼人工追蹤(Trace Code)練習
用畫表格的方式手動追蹤迴圈、陣列、條件判斷的程式碼,練到看到陌生程式碼也不慌。
衝刺的最後一天,要練習甄試裡最容易失分的題型之一:人工追蹤程式碼(Trace Code)。這是 13 天轉職甄試衝刺大綱的 Day 13。
📅 前言:讀程式碼,就像手動當一次電腦
Trace Code 的意思是:給你一段簡單的程式碼,不用執行,靠你自己一行一行讀,在紙上手動更新每個變數的值,最後推算出程式會印出什麼。
⏳ 紙上追蹤模板
追蹤程式碼時,建議在紙上列一張表格,把每個變數當作一欄,每跑一次迴圈就更新一次:
| 執行到第幾行 / 第幾次迴圈 | i | sum | arr |
|---|---|---|---|
| 開始 | - | 0 | [] |
| 第 1 次 | 1 | ... | ... |
| 第 2 次 | 2 | ... | ... |
⏳ 練習 1:追蹤累加
let sum = 0;
for (let i = 1; i <= 4; i++) {
sum += i;
}
console.log(sum);
手動追蹤:
| 第幾次 | i | sum(執行後) |
|---|---|---|
| 1 | 1 | 0 + 1 = 1 |
| 2 | 2 | 1 + 2 = 3 |
| 3 | 3 | 3 + 3 = 6 |
| 4 | 4 | 6 + 4 = 10 |
答案:印出 10(迴圈跑完 i=4 之後,i <= 4 不成立就停止)。
⏳ 練習 2:追蹤陣列與函式
function double(n) {
return n * 2;
}
let nums = [1, 2, 3];
let result = [];
for (let i = 0; i < nums.length; i++) {
result.push(double(nums[i]));
}
console.log(result);
手動追蹤:
| i | nums[i] | double(nums[i]) | result(執行後) |
|---|---|---|---|
| 0 | 1 | 2 | [2] |
| 1 | 2 | 4 | [2, 4] |
| 2 | 3 | 6 | [2, 4, 6] |
答案:印出 [2, 4, 6]。
⏳ 練習 3:追蹤條件判斷 + 迴圈(綜合題)
let sum = 0;
for (let i = 1; i <= 5; i++) {
if (i % 2 === 0) {
sum += i;
}
}
console.log(sum);
💡 提示:
i % 2 === 0代表「i 是偶數」,只有偶數才會被加進sum。
手動追蹤:
| i | i 是偶數? | sum(執行後) |
|---|---|---|
| 1 | 否 | 0 |
| 2 | 是 | 0 + 2 = 2 |
| 3 | 否 | 2 |
| 4 | 是 | 2 + 4 = 6 |
| 5 | 否 | 6 |
答案:印出 6(只有 2 和 4 被加進去,2 + 4 = 6)。
🎯 目標
- 能不執行程式,靠手動追蹤推算出最終的變數值與輸出結果
- 熟悉「畫表格逐步更新變數」這個方法,遇到陌生程式碼也不慌
🎉 13 天衝刺,辛苦了!
從二進位、電腦硬體、網路原理,到變數、迴圈、函式陣列,再到資料庫、資料結構、時間複雜度、搜尋排序,最後用 3 天複習收網——這 13 天涵蓋了轉職甄試最常考的核心觀念。剩下的,就是保持這份手感,帶著自信上考場吧!