C程序設計導引(2)
第3章
3.1 關系運算符和邏輯運算符
關系運算符
<、<=、>、>= 左端小於、小於等於、大於、大於等於右端時返回值為1,否則為0
==、!= 左端等於、不等於右端時返回值為1,否則為0
運算符亦具有優先級,第一行中的運算符優先級大於第二行。同一行中的運算符具有相同的優先級。
例子 |
名稱 |
結果 |
$a and $b |
And(邏輯與) |
TRUE,如果 $a 與 $b 都為 TRUE。 |
$a or $b |
Or(邏輯或) |
TRUE,如果 $a 或 $b 任一為 TRUE。 |
$a xor $b |
Xor(邏輯異或) |
TRUE,如果 $a 或 $b 同位相異。 |
! $a |
Not(邏輯非) |
TRUE,如果 $a 不為 TRUE。 |
$a && $b |
And(邏輯與) |
TRUE,如果 $a 與 $b 都為 TRUE。 |
$a || $b |
Or(邏輯或) |
TRUE,如果 $a 或 $b 任一為 TRUE。 |
(本表來源於百度百科,C語言中異或的寫法為“^”)
3.2 運算符的優先級
四則運算符>關系運算符>邏輯運算符
邏輯運算符中,優先級為“非”>“與”>“異或”>“或”(之後出一個專門的表來說優先級)
3.3 條件語句
(1)條件語句有兩種,第一種是if語句,第二種是if else語句。
句法格式如下:
if (<表達式>) <語句>
在這個語句中,表達式描述後面的語句可以執行的條件。括號內表達式非0時,條件為真,否則為假。如果為真則執行語句,否則不執行。
一個例子:
if (a%2==0) printf(“%d是偶數\n”,a); if (<表達式>) <語句1> else <語句2> if (a%2==0) printf(“%d是偶數\n”,a); else printf(“%d是奇數\n”,a);
(2)如果一個語句不滿足我們的需要,我們就要使用復合語句。
下面是一個例子:
{ double a,b; a=x+y; b=x-y; z=a*a+b*b; }
之前例子中的<語句>、<語句1>、<語句2>都可以使單條語句,也可以是復合語句。
不僅如此,我們還可以對條件語句進行嵌套(不再舉例)和級聯:
if (表達式1) 語句1 else if (表達式2) 語句2 … else 語句n+1
(3)還有一類運算符叫做條件運算符,即形如“?:”的三元運算符。由條件運算符及其運算對象構成的表達式被稱為條件表達式。語法格式如下:
<表達式1>?<表達式二>:<表達式3>
當表達式1為真時計算表達式2的值作為條件表達式的值,否則計算表達式3的值作為條件表達式的值。
3.5 switch語句
switch語句是一種多路選擇的分支結構,語法格式如下:
switch(<控制表達式>){ case <常量表達式1>:語句序列1 case <常量表達式2>:語句序列2 ... case <常量表達式n>:語句序列n default:<語句序列n+1> }
default及其所對應的語句序列是可選項,任何一個case所對應的語句序列也可以為空,每個常量表達式的類型必須是整形且各不相同。default後面的語句會在控制表達式的值未在任何一個case中出現時執行。
C程序設計導引(2)