Chapter 5 選擇語(yǔ)句

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?

邏輯運(yùn)算符

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);
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容