
else 為關鍵字之一, if-else 陳述為單一 if 陳述的延伸,提供若真則執行某某,若非執行某某的後者,也就是條件為真,執行 if 底下大括弧的程式,條件為假則執行 else 底下大括弧的陳述。
利用 if-else 可以讓程式簡化,例如
if (a > b) { printf ( "a > b\n" ); } else { printf ( "a < b\n" ); } |
這樣程式只需要做單一的條件判斷。沒有用 else 就得寫兩個 if ,程式必須做兩次條件判斷
if (a > b) { printf ( "a < b\n" ); } if (a < b) { printf ( "a > b\n" ); } |
當程式發展規模越來越大的時候,差別就出現了,多餘的條件判斷會降低程式的效率。
指派運算子,也就是單一個等號 = ,可以和其他的運算子連用,運算後同時指派,使程式碼更為簡潔
運算子 | 功能 | 範例 |
---|---|---|
+= | 相加同時指派 | a += b |
-= | 相減同時指派 | a -= b |
*= | 相減同時指派 | a *= b |
/= | 相除同時指派 | a /= b |
%= | 取餘數同時指派 | a %= b |
簡單說, a += b 就是把 a + b 的結果再指派給變數 a 。到目前為止,我們介紹過的算術運算子都可以和指派運算子連用。這種寫法在許多 C 程式都常出現,因此需要習慣這種表示方式,我們以一個例子示範如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #include <stdio.h> int main( void ) { int a = 10; int b = 10; a += 1; b++; a -= 1; --b; if (a == b) { printf ( "a == b\n" ); } else { printf ( "a != b\n" ); } return 0; } /* 《程式語言教學誌》的範例程式 檔名:assign.c 功能:示範運算同時指派 作者:張凱慶 時間:西元2010年7月 */ |
編譯後執行,如下

這個例子也說明
a += 1; |
與
a++; // 或++a; |
的計算結果是相同的。同樣的
a -= 1; |
與
a--; // 或--a; |
的計算結果也是相同的。
問題與討論
- 程式寫的簡潔有什麼優點?又有什麼缺點?
- 為什麼說多餘的條件判斷會降低程式的效率?
- 除了算術運算子以外,位元運算子也可以跟指派願算子合用,位元運算子的功能是什麼呢?
- a += 1; 、 a++; 、 ++a; ,三者會得到相同的運算結果,你能不找出其他不同寫法但有相同結果的運算式?
沒有留言:
張貼留言