Q1for (int i=0; i<5; i++) {} 執行幾次?離開時 i 是多少?預測輸出
5 次,i = 5。i = 0,1,2,3,4 共 5 次;i 變成 5 時 5<5 假、離開。
Q2for (int i=10; i>0; i-=3) printf("%d ", i); 輸出?預測輸出
10 7 4 1。10→7→4→1(1>0 真,印 1)→ -2(不>0,停)。
Q3用迴圈算階乘時,累乘器的初始值應該是?概念
1。累乘初值 0 會讓結果永遠是 0。累加用 0、累乘用 1。
Q4外層跑 3 次、內層每次跑 2 次,count++ 共執行幾次?預測輸出
6。巢狀總次數 = 外 × 內 = 3 × 2 = 6。
Q5break 與 continue 的差別?概念
break 跳出整個迴圈、continue 跳過本圈。
Q6for (int i=0; i<5; i++); 後面多一個分號,會怎樣?抓 bug
空迴圈。分號就是迴圈的(空)主體,迴圈只是把 i 從 0 跑到 5;後面看似縮排在裡面的程式碼其實不在迴圈內。
Q7想讓迴圈從 0 開始「剛好跑 n 次」,條件要寫?概念
i < n。i = 0..n-1 共 n 次。寫 i <= n 會多跑一次(off-by-one)。
Q8直角三角形內層條件 j <= i,第 3 行印幾個星號?預測輸出
3。內層 j <= i 讓第 i 行印 i 個,所以第 3 行印 3 個。
Q9while 與 do-while 的差別?概念
do-while 先做再檢查、至少一次;while 先檢查、可能 0 次。
Q10迴圈 i=1..10,if(i==5)break; if(i%2==0)continue; 後印 i,輸出?預測輸出
1 3。i=1 印;i=2 偶數 continue;i=3 印;i=4 continue;i=5 break 整個停。