第三章
特別要注意:C語言中是用非0表示邏輯真的,用0表示邏輯假的。
C語言有構造類型,沒有邏輯類型。
關係運算符號:注意<=的寫法,==和=的區別!(考試重點)
if只管後面一個語句,要管多個,請用大括號!
1)關係表達式:
a、表達式的數值只能爲1(表示爲真),或0(表示假)。
如 9>8這個關係表達式是真的,所以9>8這個表達式的數值就是1。
如 7<6這個關係表達式是假的,所以7<6這個表達式的數值就是0
b、考試最容易錯的:就是int x=1,y=0,z=2;
x<y<z是真還是假?帶入爲1<0<2,從數學的角度出發肯定是
錯的,但是如果是C語言那麼就是正確的!因爲要1<0爲假得到0,表達式就變成
了0<2那麼運算結果就是1,稱爲了真的了!
c、等號和賦值的區別!一定記住“=”就是賦值,“= =”纔是等號。雖然很多人可以背
誦,但我依然要大家一定好好記住,否則,做錯了,我一定會強烈的鄙視你!
2)邏輯表達式:
核心:表達式的數值只能爲1(表示爲真),或0(表示假)。
a) 共有&& || ! 三種邏輯運算符號。
b)!>&&>|| 優先的級別。
c) 注意短路現象。考試比較喜歡考到。詳細請見書上例子,一定要會做例1和例2
d) 表示 x 小於0大於10的方法。
0<x<10是不行的(一定記住)。是先計算0<x 得到的結果爲1或則0;再用0,或1與10比較得到的總是真(爲1)。所以一定要用 (0<x)&&(x<10)表示比0大比10小。
3)if 語句
a、else 是與最接近的if且沒有else的語句匹配。
b、交換的程序寫法:t=x;x=y;y=t;
c、if(a<b)t=a;a=b;b=t;
if(a<b){t=a;a=b;b=t;}兩個的區別,考試多次考到了!
d、單獨的if語句:if(a<b)t=a;
標準的if語句:if(a<b)min=a;
else min=b;
嵌套的if語句:if(a<b)
if(b>c)printf(“ok!”);
多選一的if語句if(a= =t)printf(“a”);
else if(b= =t)printf(“b”);
else if(c= =t)printf(“c”);
else pritnf(“d”);
通過習題,要熟悉以上幾種if語句!
經典考題:結合上面四種if語句題型做題,答錯了,請自行了斷!預備,開始!
int a=1,b=0;
if(!a)b++;
else if(a= =0)
if(a)b+=2;
else b+=3;請問b的值是多少?
如果沒有看懂題目,你千萬不要自行了斷,這樣看得懂不會做的人纔會有理由的活着。
正確的是b爲3。
int a=1,b=0;
if(!a)b++; 是假的不執行
elseif(a= =0) 是假的執行
if(a)b+=2; 屬於else if的嵌套if語句,不執行。
elseb+=3; if-else-if語句沒有一個正確的,就執行else的語句!
4)條件表達式:
表達式1 ?表達式2 :表達式3
a、考試口訣:真前假後。
b、注意是當表達式1的數值是非0時,才採用表達式2的數值做爲整個運算結果,當表達式1的數值爲0時,就用表達式3的數值做爲整個的結果。
c、int a=1,b=2,c=3,d=4,e=5;
k=a>b?c:d>e?d:e;求k的數值時多少? 答案爲san
5)switch語句:
a) 執行的流程一定要弄懂!上課時候詳細的過程講了,請自己一定弄懂!
b)注意有break 和沒有break的差別,書上的兩個例子,沒有break時候,只要有一個case匹配了,剩下的都要執行,有break則是直接跳出了swiche語句。break在C語言中就是分手,一刀兩斷的意思。
c) switch只可以和break一起用,不可以和continue用。
d) switch(x) x:是整型常量,字符型常量,枚舉型數據。
{case 1: …. 不可以是變量。
case 2: ….
}
e)switch是必考題型,請大家一定要完成書上的課後的switch的習題。