流程控制敘述
- 請參考 randwalk.c.
- 作業: 作最少的修改, 讓 randwalk.c 可在 DOS 及 Windows 底下執行.
- C 中的「是非」: 0, 0.0, \0 為非, 其他皆為是.
- 數字比較: <= < > >= == !=
- 複合條件 (and or not): && || !
-
指令語法
if ( ... ) { ... }
if ( ... ) { ... } else { ... }
縮格非常重要! 尤其是疊在一起的 ifwhile ( ... ) { ... }
-
for (初始設定; 繼續條件; 每次更新) { ... }
相當於初始設定; while (繼續條件) { ... /* 可以是空敘述, 要小心! */ 每次更新; }
C/C++ 的計數習慣: 0, 1, 2, ... n-1 do { ... } while ( ... );
switch (...) { ... }
只有 char, int, enum 及類似簡單型別可以作為 switch 的運算式/標籤. 標籤不可重複. 好習慣: 每個 case 子句最後不是 break 就是一串提醒讀者 "fall through" 的註解. ("繼續執行下一個 case 的指令!")break;
跳出最內層的 for, while, do, 或 switch.continue;
跳最內層的 for, while, do 的右括弧之前, 所以不論是在 那一種迴圈中執行到continue
, 都會跳到條件測試處.return;
- 只有一個指令時可以不要有 { }, 但寫出來永遠不會有錯
- 留意 strcmp 的語意 -- if (strcmp(...)) "如果 _不_ 相等"
- 特別注意不要把「比較是否相等」寫成「指定值」, 例如:
if (x=3) { ... }
語法正確, 語意可疑 -
作業:
- 計算 x 的 n 次方, 例如 "a.out 3 4" 印出 81, "a.out 5 -2" 印出 0.04, "a.out 1.2 3" 印出 1.728 (使用到 atof() 函數). 用 if 及兩個迴圈可以分別處理指數是正數及負數的狀況. 可以只用一個迴圈嗎?
- 印出 n 的 二進位值, 例如 "a.out 13" 印出 1101, "a.out 37" 印出 100101. 用到整數的除法 / 及餘數的計算 %. 用到陣列變數.
- 以 n 的二進位值快速計算 x 的 n 次方. 例: x^34 = x^32 * x^2, 而 x^32 = x^16 * x^16, ...
- 本頁最新版網址: https://frdm.cyut.edu.tw/~ckhung/b/c/control.php; 您所看到的版本: February 14 2012 10:32:25.
- 作者: 朝陽科技大學 資訊管理系 洪朝貴
- 寶貝你我的地球, 請 減少列印, 多用背面, 丟棄時做垃圾分類。
- 本文件以 Creative Commons Attribution-ShareAlike License 或以 Free Document License 方式公開授權大眾自由複製/修改/散佈。