亚洲综合图片区自拍_思思91精品国产综合在线观看_一区二区三区欧美_欧美黑人又粗又大_亚洲人成精品久久久久桥本

C語(yǔ)言中if語(yǔ)句、if-else語(yǔ)句和switch語(yǔ)句詳解

2023-08-18 17:25:26 來(lái)源:知微之見(jiàn)

前言

C語(yǔ)言中,有三種條件判斷結(jié)構(gòu):if語(yǔ)句、if-else語(yǔ)句和switch語(yǔ)句。

一、人物簡(jiǎn)介

第一位閃亮登場(chǎng),有請(qǐng)今后會(huì)一直教我們C語(yǔ)言的老師 —— 自在。第二位上場(chǎng)的是和我們一起學(xué)習(xí)的小白程序猿 —— 逍遙。

二、if語(yǔ)句

基本語(yǔ)法
if (條件) {    // 代碼塊1}
代碼示例
#include < stdio.h >int main() {  int num = 5;  if (num > 0) {    printf("這個(gè)數(shù)為正數(shù).n");  }  return 0;}
運(yùn)行結(jié)果

三、if-else語(yǔ)句

基本語(yǔ)法
if (條件) {    // 代碼塊1} else {    // 代碼塊2}
代碼示例
#include < stdio.h >int main() {  int num = -2;  if (num > 0) {    printf("這個(gè)數(shù)為正數(shù).n");  } else {    printf("這個(gè)數(shù)為負(fù)數(shù).n");  }  return 0;}
運(yùn)行結(jié)果

if語(yǔ)句嵌套使用

代碼示例
#include < stdio.h >int main() {    int num = 3;    if (num > 0) {        if (num < 5) {            printf("num在1到4之間n");        } else {            printf("num大于等于5n");        }    } else {        printf("num小于等于0n");    }    return 0;}

在這個(gè)示例中,外層的if語(yǔ)句判斷num是否大于0,如果成立,進(jìn)入內(nèi)層的if語(yǔ)句繼續(xù)判斷num是否小于5;


【資料圖】

如果不成立,執(zhí)行else語(yǔ)句塊,輸出"num小于等于0"。

num的值是3,它既符合外層if語(yǔ)句的條件,也符合內(nèi)層if語(yǔ)句的條件,所以程序輸出"num在1到4之間"。

運(yùn)行結(jié)果

if else語(yǔ)句的鏈?zhǔn)绞褂?/h3>代碼示例
#include < stdio.h >int main() {    int score = 85;    if (score >= 90) {        printf("優(yōu)秀n");    } else if (score >= 80) {        printf("良好n");    } else if (score >= 70) {        printf("中等n");    } else if (score >= 60) {        printf("及格n");    } else {        printf("不及格n");    }    return 0;}

在這個(gè)示例中,if else語(yǔ)句被鏈?zhǔn)绞褂?,程序從上到下依次判斷score的值是否大于等于90、是否大于等于80、是否大于等于70、是否大于等于60,最終輸出對(duì)應(yīng)的成績(jī)等級(jí)。

score的值是85,它大于等于80,但小于90,所以程序輸出"良好"。

運(yùn)行結(jié)果

四、switch語(yǔ)句

基本語(yǔ)法
switch (expression) {    case constant1:        statement1;        break;    case constant2:        statement2;        break;    ...    default:        statementN;        break;}
switch語(yǔ)句的執(zhí)行過(guò)程如下:表達(dá)式的值被計(jì)算。表達(dá)式的值被依次與各個(gè)case后的常量進(jìn)行比較,直到找到與之匹配的常量。如果找到匹配的常量,執(zhí)行該常量對(duì)應(yīng)的代碼塊,并跳出switch語(yǔ)句。如果沒(méi)有找到匹配的常量,執(zhí)行default對(duì)應(yīng)的代碼塊(如果有),并跳出switch語(yǔ)句。

?switch語(yǔ)句中的case標(biāo)簽可以是整數(shù)、字符或枚舉常量。

每個(gè)case標(biāo)簽必須是唯一的,且必須以冒號(hào)(:)結(jié)尾。

case后面的代碼塊中可以包含任意數(shù)量的語(yǔ)句,用花括號(hào)({})來(lái)組成代碼塊。

switch語(yǔ)句的default標(biāo)簽是可選的,它通常放在case標(biāo)簽的最后面。如果沒(méi)有匹配到任何case標(biāo)簽,那么default標(biāo)簽下的代碼塊將被執(zhí)行。

default標(biāo)簽只能出現(xiàn)一次,且必須放在最后一個(gè)case標(biāo)簽之后,否則會(huì)引發(fā)編譯錯(cuò)誤。

switch基礎(chǔ)用法

下面是一個(gè)簡(jiǎn)單的switch語(yǔ)句示例,用于根據(jù)輸入的數(shù)字輸出對(duì)應(yīng)的星期幾:
#include < stdio.h >int main() {    int day;    printf("請(qǐng)輸入數(shù)字(1-7):");    scanf("%d", &day);    switch (day) {        case 1:            printf("星期一n");            break;        case 2:            printf("星期二n");            break;        case 3:            printf("星期三n");            break;        case 4:            printf("星期四n");            break;        case 5:            printf("星期五n");            break;        case 6:            printf("星期六n");            break;        case 7:            printf("星期日n");            break;        default:            printf("輸入錯(cuò)誤!n");            break;    }    return 0;}
運(yùn)行結(jié)果

switch高級(jí)用法

除了基本用法外,switch語(yǔ)句還有一些高級(jí)用法,可以更靈活地使用。

1、case標(biāo)簽穿透

在switch語(yǔ)句中,如果沒(méi)有在一個(gè)case語(yǔ)句塊中使用break語(yǔ)句,那么程序會(huì)從這個(gè)case開(kāi)始,一直執(zhí)行到switch語(yǔ)句的結(jié)尾,這種現(xiàn)象被稱為case標(biāo)簽穿透。

下面是一個(gè)case標(biāo)簽穿透的示例:
#include < stdio.h >int main() {    int num = 3;    switch (num) {        case 1:        case 2:            printf("num是1或2n");            break;        case 3:        case 4:            printf("num是3或4n");            break;        default:            printf("num不是1、2、3、4n");            break;    }    return 0;}

在這個(gè)示例中,num的值是3,它既符合case 3的條件,也符合case 4的條件,但是由于case 3的語(yǔ)句塊中使用了break語(yǔ)句,所以程序執(zhí)行完case 3之后就跳出了switch語(yǔ)句,不會(huì)繼續(xù)執(zhí)行case 4的語(yǔ)句塊。

運(yùn)行結(jié)果

2、switch語(yǔ)句嵌套

在C語(yǔ)言中,switch語(yǔ)句可以嵌套使用,例如:
#include < stdio.h >int main() {    int num = 1;    switch (num) {        case 1:            printf("num是1n");            switch (num) {                case 2:                    printf("num是2n");                    break;                default:                    printf("num不是2n");                    break;            }            break;        case 3:            printf("num是3n");            break;        default:            printf("num既不是1也不是3n");            break;    }    return 0;}

在這個(gè)示例中,switch語(yǔ)句被嵌套使用,內(nèi)層的switch語(yǔ)句只有在外層的case 1被匹配時(shí)才會(huì)執(zhí)行。

運(yùn)行結(jié)果

小結(jié)

通過(guò)這篇文章,我們學(xué)會(huì)了

1、if語(yǔ)句

2、if-else語(yǔ)句

3、switch語(yǔ)句

標(biāo)簽:

上一篇:C語(yǔ)言中賦值運(yùn)算符詳解
下一篇:最后一頁(yè)