C語言 條件運(yùn)算符
條件運(yùn)算符為三目運(yùn)算,包含三個操作數(shù),三個操作數(shù)由“?”和“:”連接,其形式為:
<表達(dá)式1> ?〈表達(dá)式2〉:〈表達(dá)式3>
條件運(yùn)算符的運(yùn)算規(guī)則為:先計算表達(dá)式1的值,若它的值為真(非0),則計算表達(dá)式2的值,并把它作為整個表達(dá)式的值;如果表達(dá)式1的值為假(0),則計算表達(dá)式3的值并把它作為整個表達(dá)式的值。
例如:
max=x>y?x:y
先判斷x>y是否成立,若成立,返回x的值,否則返回y的值。
C語言中條件運(yùn)算符的優(yōu)先級高于賦值運(yùn)算符,其結(jié)合方向為自右至左。
【例題】員工銷售額判斷
根據(jù)某員工的銷售額計算銷售提成,銷售額小于等于1萬,提成為5%,銷售額大于1萬,小于等于2萬,提成為8%;售額大于2萬,提成為10%。
分析:條件表達(dá)式只能返回一個邏輯表達(dá)式取值為真、假兩種不同情況時的值,如果當(dāng)“銷售 額>20000” 這個表達(dá)式成立時,提成的值為“銷售額*10%”但當(dāng)銷售額不大于20000時,還有兩種情況,即大于1萬,或小于等于1萬。所以在“銷售額>20000”這個表達(dá)式不成立時,再嵌入一個條件表達(dá)式,以判斷銷售額是大于1萬,還是小于等于1萬。
程序如下:
#include <stdio.h>
main()
{
int sales;
float tc;
printf("please input sales\n");
scanf ("%d",&sales);
tc=(sales>20000?sales*0.1:(sales>10000?sales*0.08:sales*0.05));
printf ("tc=%f\n",tc);
程序運(yùn)行結(jié)果:
當(dāng)輸入30000時,輸出為tc=3000
當(dāng)輸入15000時,輸出為tc=1200
當(dāng)輸入5000時,輸出為tc=250
點擊加載更多評論>>