5.1 邏輯表達(dá)式
- 關(guān)系運(yùn)算符:輸出結(jié)果為0或1,有> < >= <= (關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符)
- 判等運(yùn)算符:主要有==和 !=(優(yōu)先級(jí)低于關(guān)系運(yùn)算符)
- 邏輯運(yùn)算符:輸出結(jié)果為0或1?
5.2 if語(yǔ)句
基本格式為:if(表達(dá)式)語(yǔ)句
- 表達(dá)式兩邊的圓括號(hào)是必須的,但是不要分號(hào)。
5.2.1 復(fù)合語(yǔ)句
如果需要在if語(yǔ)句中使用多條語(yǔ)句,就需要加上花括號(hào)。
if (line_num == MAX_LINES){
line_num = 0;
page_num++;
}
5.2.2 else子句
基本格式為:if(表達(dá)式)語(yǔ)句 else 語(yǔ)句
- if語(yǔ)句和else語(yǔ)句 都是以分號(hào)結(jié)尾
5.2.3 條件表達(dá)式
基本格式為:表達(dá)式1 ? 表達(dá)式2 : 表達(dá)式3
- C語(yǔ)言中唯一一個(gè)三元運(yùn)算符
- 計(jì)算表達(dá)式1的值,如果此值不為0,那么計(jì)算表達(dá)式2的值,如果為0,結(jié)果為表達(dá)式3
- 除了賦值運(yùn)算符,條件運(yùn)算符的優(yōu)先級(jí)低于所有的運(yùn)算符
5.3 switch語(yǔ)句
// 基本格式為
**switch (表達(dá)式) {
case 常量表達(dá)式 : 語(yǔ)句
...
case 常量表達(dá)式 : 語(yǔ)句
default : 語(yǔ)句 }**
- 一個(gè)case后面只能有一個(gè)常量表達(dá)式
- 多個(gè)case可以共同使用一個(gè)常量表達(dá)式,也可以放在同一行
- 不一定要求default分支,如果沒有匹配,會(huì)直接傳給switch后面的語(yǔ)句
break語(yǔ)句的作用
- 執(zhí)行break語(yǔ)句非導(dǎo)致程序跳出switch語(yǔ)句,繼續(xù)執(zhí)行switch后面的語(yǔ)句
- 如果沒有break語(yǔ)句,會(huì)跳轉(zhuǎn)到下一個(gè)分支
- TEST
/*用戶輸入兩個(gè)日期,顯示哪一個(gè)日期更早*/
#include <stdio.h>
int main(){
int d1,m1,y1;
int d2,m2,y2;
printf("Enter the first date: ");
scanf("%d/%d/%d",&d1,&m1,&y1);
printf("Enter the second date: ");
scanf("%d/%d/%d",&d2,&m2,&y2);
int ans,f = 0,s = 1;
ans = (y1 == y2) ? ((m1 == m2) ? ((d1 < d2) ? f : s) :((m1 < m2) ? f : s)) : ((y1 < y2) ? f : s);
if (ans) printf("earlier is %02d/%02d/%02d ",d2,m2,y2);
else printf("earlier is %02d/%02d/%02d ",d1,m1,y1);
}