種類 | 例子 |
---|---|
運算式陳述 | 指派、呼叫函數 |
複合陳述 | 大括弧圍起來的地方 |
條件陳述 | if 、 if-else 、 switch |
重複陳述 | while 、 do-while 、 for |
最常見的就是運算式陳述了,所謂的運算式具有運算元及運算子,也可以單獨只有運算元,例如以下的程式碼在螢幕上印出 "Hello, world!" ,然後再印出新行
printf("Hello, world!\n");
單獨寫任何常數數值都是合法的常數運算式,如
1234; 56.7; '\n'; "A word to the wise is enough.";
雖然這樣是合法的,可以成功編譯,但是這樣編譯出的執行檔什麼事也不會做。我們通常都會用變數處理資料,因此將常數數值指派給變數是最常用的陳述之一,例如
int a = 1234; float b = 56.7; char c = '\n'; char *d = "A word to the wise is enough.";
宣告變數就可以接上等號 = ,將常數數值直接指派給變數。
C 語言具有豐富的運算子,如下表依運算子的優先順序列出 C 所有的運算子
運算子 | 結合規則 |
---|---|
() [] -> . | 左到右 |
! ~ ++ -- + - * & (type) sizeof | 右到左 |
* / % | 左到右 |
+ - | 左到右 |
<< >%gt; | 左到右 |
< <= > >= | 左到右 |
== != | 左到右 |
& | 左到右 |
^ | 左到右 |
| | 左到右 |
&& | 左到右 |
|| | 左到右 |
?: | 右到左 |
= += -= /= %= &= | 右到左 |
^= |= <<= >>= | 右到左 |
, | 左到右 |
我們接下來會依需要來討論各種運算子,首先來用常用的算術運算子來寫個加法器
運算子 | 功能 | 範例 |
---|---|---|
+ | 加 | a + b |
- | 減 | a - b |
* | 乘 | a * b |
/ | 除 | a / b |
% | 取餘數 | a % b |
加法器是很簡單的加法計算,我們再來將加法器擴展成四則運算器。
四則運算器得分三次輸入,我們發展新版本的四則運算器,像手邊的小型計算機一樣,一次輸入就 OK 了。
有些錯誤必須避免,小心!除以 0 ,同時我們也來看看關係運算子
運算子 | 功能 | 範例 |
---|---|---|
< | 小於 | a < b |
<= | 小於等於 | a <= b |
> | 大於 | a > b |
>= | 大於等於 | a <= b |
== | 相等 | a == b |
!= | 不等 | a != b |
邏輯運算子也很常用
運算子 | 功能 | 範例 |
---|---|---|
! | 非 | !a |
&& | 且 | a && b |
|| | 或 | a || b |
四則運算器還有些問題需要解決,若是該輸入整數卻輸入字元,會有奇怪的錯誤發生,因此要解決輸入型態不相符的問題。
另外遞增遞減也是很常用的概念
運算子 | 功能 | 範例 |
---|---|---|
++ | 前遞增 | ++a |
++ | 後遞增 | a++ |
-- | 前遞減 | --a |
-- | 後遞減 | a-- |
指派運算子也可以和算術運算子合用
運算子 | 功能 | 範例 |
---|---|---|
+= | 相加同時指派 | a += b |
-= | 相減同時指派 | a -= b |
*= | 相減同時指派 | a *= b |
/= | 相除同時指派 | a /= b |
%= | 取餘數同時指派 | a %= b |
我們接下來繼續改進打招呼的程式,向使用者 Say Hello! 。
應該要顯示出現在時刻,所以要處理時間問題。
設計與使用者互動程式還是遊戲有趣點,所以最後來玩猜數字吧!
問題與討論
- 函數跟陳述有什麼不同?
- 陳述需以什麼符號結尾?
- 遞增遞減跟算術運算有什麼不同?
- 想想要怎麼設計猜數字遊戲呢?我們能不能取得一個隨機數當答案呢?
3 則留言:
<= 小於等於 a <= b
<= 大於等於 a <= b
運算子的部分出了一點小錯
即便我這種初新者都看得懂 大家應該也都知道..
只是改正會比較好 謝謝!
這邊打錯字了,已修改,感謝指正 ^_^
*= 相減同時指派 a *= b
-------------------------------
*= 相乘同時指派 a *= b
應該是乘
張貼留言