條件運算子為「?和:」,它是乙個三目運算子,即有三個參與運算的量。
由條件運算子組成條件表示式的一般形式為:
表示式1? 表示式2: 表示式3
其求值規則為:如果表示式1的值為真,則以表示式2 的值作為條件表示式的值,否則以表示式2的值作為整個條件表示式的值。
條件表示式通常用於賦值語句之中。
例如條件語句:
if(a>b) max=a;
else max=b;
可用條件表示式寫為
max=(a>b)?
a:b;
執行該語句的語義是:如
a>b
為真,則把a賦予
max,否則把
b 賦予
max。
使用條件表示式時,還應注意以下幾點:
1) 條件運算子的運算優先順序低於關係運算子和算術運算子,但高於賦值符。 因此
max=(a>b)?
a:b
可以去掉括號而寫為
max=a>
b?a:b
2) 條件運算子
?和:是一對運算子,
不能分開單獨使用。
3) 條件運算子的結合方向是
自右至左。
例如:
a>
b?a:c
>
d?c:d
應理解為
a>
b?a:(c>
d?c:d)
這也就是條件表示式巢狀的情形,即其中的表示式
3又是乙個條件表示式。
【例5.8】
#include "stdio.h"
void main()
補充:輸入乙個字元,判別它是否大寫字母,如果是,將它轉換成小寫字母;如果不是,不轉換。然後輸出最後得到的字元
。
#include void main()
c語言還提供了另一種用於多分支選擇的
switch
語句, 其一般形式為:
其語義是:計算表示式的值。並逐個與其後的常量表示式值相比較,當表示式的值與某個常量表示式的值相等時,即執行其後的語句,然後不再進行判斷,繼續執行後面所有
case
後的語句。如表示式的值與所有
case
後的常量表示式均不相同時,則執行
default
後的語句。
【例4.9】
#include void main()
}
在上面的程式中,我們執行後輸入4,會得到:
input integer number: 4
thursday
friday
saturday
sunday
error
為了避免上述情況,c語言還提供了一種break語句,專用於跳出switch語句,break 語句只有關鍵字break,沒有引數。
請看後邊例子……
【例4.10】
#include void main()
}
在使用switch語句時還應注意以下幾點:1)在case後的各常量表示式的值不能相同,否則會出現錯誤。2)在case後,允許有多個語句,可以不用{}括起來。3)各case和default子句的先後順序可以變動,而不會影響程式執行結果。4) default子句可以省略不用。【例
4.11】
輸入三個整數,輸出最大數和最小數。
#include void main()
else
if (maxc)
min = c;
printf("max=%d\nmin=%d", max, min);
}
【
例4.12】
計算器程式。使用者輸入運算數和四則運算符,輸出計算結果。
#include "stdio.h"
void main()
}
#include void main()
else
printf("error input!");
}
路程(s)越遠,每公里運費越低。標準如下:
s<250km
沒有折扣
250≤s<500 2%折扣
500≤s<1000 5%折扣
1000≤s<2000 8%折扣
2000≤s<3000 10%折扣
3000≤s
15%折扣
設每公里每噸貨物的基本運費為p,貨物重為w,距離為s,
折扣為d,則總運費f的計算公式為:
f=p*w*s*(1-d)
#include void main()
零基礎入門學習C語言005講 分支程式設計(2)
用if 語句可以構成分支結構。它根據給定的條件進行判斷,以決定執行某個分支程式段。語言的 if語句有三種基本形式。第一種形式為基本形式 if 表示式 語句其語義是 如果表示式的值為真,則執行其後的語句,否則不執行該語句。其過程可表示為下圖。例5.3 include stdio.h void main...
零基礎入門學習C語言004講 順序程式設計(2)
scanf函式稱為格式輸入函式,即按使用者指定的格式從鍵盤上把資料輸入到指定的變數之中。1.scanf函式的一般形式 scanf函式是乙個標準庫函式,它的函式原型在標頭檔案 stdio.h 中,與printf函式相同,語言也允許在使用scanf函式之前不必包含stdio.件。scanf函式的一般形式...
零基礎入門學習C語言010講 預處理(1)
在前面各章中,已多次使用過以 號開頭的預處理命令。如包含命令 include 巨集定義命令 define pi 3.1415926等。在源程式中這些命令都放在函式之外,而且一般都放在原始檔的前面,它們稱為預處理部分。無參巨集的巨集名後不帶引數。其定義的一般形式為 define 識別符號 字串 其中的...