最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一篇文章帶你了解C語(yǔ)言的選擇結(jié)構(gòu)

 更新時(shí)間:2022年01月17日 14:39:47   作者:侯稼澍  
這篇文章主要為大家介紹了C語(yǔ)言的選擇結(jié)構(gòu),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助

一、if-else語(yǔ)句

1.單選擇

單選擇通過(guò)if語(yǔ)句就可以實(shí)現(xiàn),if語(yǔ)句的語(yǔ)法及執(zhí)行流程如下:

if(表達(dá)式)
{
     代碼塊(表達(dá)式返回值為真時(shí)執(zhí)行)
}

當(dāng)程序運(yùn)行到if語(yǔ)句時(shí),會(huì)由表達(dá)式進(jìn)行判定,諾表達(dá)式的返回值為真,則進(jìn)入代碼塊執(zhí)行語(yǔ)句,為假便跳過(guò)代碼塊繼續(xù)執(zhí)行。(當(dāng)代碼塊語(yǔ)句僅有一句時(shí),可以省略大括號(hào)。)

舉一個(gè)簡(jiǎn)單的例子

例:判斷10是否為3的倍數(shù)

 
int main()
{
	int i = 10;
		if (i % 3 == 0) //表達(dá)式結(jié)果為假 
			printf("是");//代碼塊內(nèi) 未執(zhí)行
	return 0;
}

 2.雙選擇

雙選擇通過(guò)if-else語(yǔ)句實(shí)現(xiàn),if-else語(yǔ)句的語(yǔ)法及執(zhí)行流程如下:

(else的匹配:else是和它相距的最近的if匹配的)

if(表達(dá)式)
{
   語(yǔ)句一(表達(dá)式返回值為真時(shí)執(zhí)行)
}
else
{
   語(yǔ)句二(表達(dá)式返回值為假時(shí)執(zhí)行)
}

 

當(dāng)程序運(yùn)行到if語(yǔ)句時(shí),會(huì)由表達(dá)式進(jìn)行判定,表達(dá)式的返回值為真,則執(zhí)行語(yǔ)句1,為假便塊執(zhí)行語(yǔ)句2。

舉一個(gè)簡(jiǎn)單的例子

例:判斷學(xué)生分?jǐn)?shù)及格 

#include<stdio.h>
int main()
{
	int i = 0;
	scanf("%d", &i);
	if (i >= 60)
		printf("及格");
	else
		printf("不及格");
	return 0;
}

3.多選擇

通過(guò)else if語(yǔ)句實(shí)現(xiàn)的多選擇,else if語(yǔ)句的語(yǔ)法及執(zhí)行流程如下:

if(表達(dá)式1)
{
   語(yǔ)句1 (表達(dá)式1返回值為真時(shí)執(zhí)行)
}
else if(表達(dá)式2)
{
   語(yǔ)句2 (表達(dá)式返回值為真時(shí)執(zhí)行)
}
else if(表達(dá)式3)
{ 
    語(yǔ)句3(表達(dá)式返回值為真時(shí)執(zhí)行)
}
else 
{
   代碼塊(以上表達(dá)式均為假時(shí)執(zhí)行)
}

 

當(dāng)程序運(yùn)行到if語(yǔ)句時(shí),會(huì)由表達(dá)式進(jìn)行判定,表達(dá)式1的返回值為真,則進(jìn)入if下的代碼塊執(zhí)行語(yǔ)句1,為假便進(jìn)入表達(dá)式2。當(dāng)然if-else可以實(shí)現(xiàn)的分支不止這四種,通過(guò)增加else if 語(yǔ)句的數(shù)量便可以實(shí)現(xiàn)更多的選擇。

舉一個(gè)簡(jiǎn)單的例子

例:年齡分段

#include <stdio.h>
int main()
{
    int age = 0;
    scanf("%d", &age);
    if (age < 18)
    {
        printf("少年\n");
    }
    else if (age >= 18 && age < 30)
    {
        printf("青年\n");
    }
    else if (age >= 30 && age < 50)
    {
            printf("中年\n");
    }
    else if (age >= 50 && age < 80)
    {
        printf("老年\n");
    }
    else
    {
        printf("老壽星\n");
    }
    return 0;
}

二.switch語(yǔ)句

switch語(yǔ)句也是一種分支語(yǔ)句。 常常用于多分支的情況。else if 語(yǔ)句也能實(shí)現(xiàn)多分支情況,但在某些情況下使用else if來(lái)實(shí)現(xiàn),會(huì)使代碼過(guò)于復(fù)雜。

比如:

輸入1,輸出星期一

輸入2,輸出星期二

輸入3,輸出星期三

輸入4,輸出星期四

輸入5,輸出星期五

輸入6,輸出星期六

輸入7,輸出星期日

如果使用else if 

#include<stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	if (1 == day)
		printf("星期一");
	else if (2 == day)
		printf("星期二");
	else if (3 == day)
		printf("星期三");
	else if (4 == day)
		printf("星期四");
	else if (5 == day)
		printf("星期五");
	else if (6 == day)
		printf("星期六");
	else
		printf("星期日");
	return 0;
}

 那么這個(gè)代碼便會(huì)太過(guò)復(fù)雜,而使用switch就會(huì)很多

switch語(yǔ)句的語(yǔ)法及執(zhí)行流程如下:

switch(整型表達(dá)式)
{
    //在一個(gè) switch 中可以有任意數(shù)量的 case 語(yǔ)句。
    case 整形常量表達(dá)式:
    語(yǔ)句;
}

case  是一個(gè)入口,按照輸入整型表達(dá)式的值進(jìn)入,后按照順序依次運(yùn)行。

單使用switch語(yǔ)句是無(wú)法實(shí)現(xiàn)分支的,需要搭配break使用才能實(shí)現(xiàn)真正的分支。

舉一個(gè)例子:

#include <stdio.h>
int main()
{
    int day = 0;
    scanf("%d", &day);
    switch (day)
    {
    case 1:
        printf("星期一\n");
    case 2:
        printf("星期二\n");
    case 3:
        printf("星期三\n");
    case 4:
        printf("星期四\n");
    case 5:
        printf("星期五\n");
    case 6:
        printf("星期六\n");
    case 7:
        printf("星期天\n");
    }
    return 0;
}

輸入值分別為2 4時(shí),輸出結(jié)果如下:

 與想要實(shí)現(xiàn)的效果相差甚遠(yuǎn),而搭配break使用就能解決這個(gè)問(wèn)題。

#include <stdio.h>
int main()
{
    int day = 0;
    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;
    }
    return 0;
}

 

 break語(yǔ)句 的實(shí)際效果是把語(yǔ)句列表劃分為不同的分支部分。

 switch除了搭配break語(yǔ)句使用,往往也會(huì)搭配 default語(yǔ)句

如果表達(dá)的值與所有的case標(biāo)簽的值都不匹配時(shí),所有的語(yǔ)句都會(huì)被跳過(guò)。程序并不會(huì)終止,也不會(huì)報(bào)錯(cuò),因?yàn)檫@種情況在C中并不認(rèn)為是個(gè)錯(cuò)誤。

諾并不想忽略不匹配所有標(biāo)簽的表達(dá)式的值時(shí),可以在語(yǔ)句列表中增加一條default子句。

當(dāng) switch 表達(dá)式的值并不匹配所有 case 標(biāo)簽的值時(shí),這個(gè) default 子句后面的語(yǔ)句就會(huì)執(zhí)行。

 例如:

#include <stdio.h>
int main()
{
    int day = 0;
    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ò)誤");
    }
    return 0;
}

 switch 語(yǔ)句可以有一個(gè)可選的 default case,出現(xiàn)在 switch 的結(jié)尾。default case 可用于在上面所有 case 都不為真時(shí)執(zhí)行一個(gè)任務(wù)。default case 中的 break 語(yǔ)句不是必需的。

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • C++ Cartographer加載配置文件過(guò)程介紹

    C++ Cartographer加載配置文件過(guò)程介紹

    這篇文章主要介紹了Cartographer加載配置文件過(guò)程,谷歌優(yōu)秀的激光SLAM開(kāi)源框架Cartographer算法簡(jiǎn)單,但是程序部分太多需要學(xué)習(xí)的地方了,不論是整體框架的結(jié)構(gòu),還是數(shù)據(jù)的使用,都是非常優(yōu)美的
    2023-03-03
  • Dev-C++調(diào)試方法的具體使用

    Dev-C++調(diào)試方法的具體使用

    本文主要介紹了Dev-C++調(diào)試方法的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Qt?QGraphicsItem?移動(dòng)時(shí)出現(xiàn)殘影問(wèn)題記錄

    Qt?QGraphicsItem?移動(dòng)時(shí)出現(xiàn)殘影問(wèn)題記錄

    自定義QGraphicsItem時(shí),繪制rect,對(duì)象移動(dòng)時(shí)出現(xiàn)殘影的問(wèn)題記錄,本文給大家介紹Qt?QGraphicsItem?移動(dòng)時(shí)出現(xiàn)殘影問(wèn)題記錄,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • C語(yǔ)言詳解如何實(shí)現(xiàn)堆及堆的結(jié)構(gòu)與接口

    C語(yǔ)言詳解如何實(shí)現(xiàn)堆及堆的結(jié)構(gòu)與接口

    堆是計(jì)算機(jī)科學(xué)中一類(lèi)特殊的數(shù)據(jù)結(jié)構(gòu)的統(tǒng)稱(chēng),通常是一個(gè)可以被看做一棵完全二叉樹(shù)的數(shù)組對(duì)象。而堆排序是利用堆這種數(shù)據(jù)結(jié)構(gòu)所設(shè)計(jì)的一種排序算法。本文將詳細(xì)介紹堆的結(jié)構(gòu)與接口,需要的可以參考一下
    2022-04-04
  • C++函數(shù)重載詳解及實(shí)例代碼

    C++函數(shù)重載詳解及實(shí)例代碼

    這篇文章主要介紹了C++函數(shù)重載詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • 顯示任何進(jìn)程加載的DLL文件的代碼

    顯示任何進(jìn)程加載的DLL文件的代碼

    c語(yǔ)言實(shí)現(xiàn)的顯示任何進(jìn)程加載的DLL,方便開(kāi)發(fā)軟件的朋友
    2013-05-05
  • C++常見(jiàn)獲取隨機(jī)數(shù)的方法小結(jié)

    C++常見(jiàn)獲取隨機(jī)數(shù)的方法小結(jié)

    這篇文章主要介紹了C++常見(jiàn)獲取隨機(jī)數(shù)的方法,結(jié)合實(shí)例形式總結(jié)分析了C++獲取隨機(jī)數(shù)的幾種常見(jiàn)方法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-05-05
  • c++調(diào)用動(dòng)態(tài)庫(kù)LNK2019和LNK1120無(wú)法解析的外部命令

    c++調(diào)用動(dòng)態(tài)庫(kù)LNK2019和LNK1120無(wú)法解析的外部命令

    本文主要介紹了c++調(diào)用動(dòng)態(tài)庫(kù)LNK2019和LNK1120無(wú)法解析的外部命令, 出現(xiàn)這個(gè)錯(cuò)誤一般都是函數(shù)只找到聲明但沒(méi)有實(shí)現(xiàn),或者是少了什么鏈接庫(kù),下面就來(lái)解決一下
    2024-06-06
  • 基于C++ list中erase與remove函數(shù)的使用詳解

    基于C++ list中erase與remove函數(shù)的使用詳解

    本篇文章是對(duì)C++ list中erase與remove函數(shù)的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • MATLAB中subplot函數(shù)的語(yǔ)法與使用實(shí)例

    MATLAB中subplot函數(shù)的語(yǔ)法與使用實(shí)例

    subplot()是將多個(gè)圖畫(huà)到一個(gè)平面上的工具,下面這篇文章主要給大家介紹了關(guān)于MATLAB中subplot函數(shù)的語(yǔ)法與使用的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08

最新評(píng)論

建平县| 汾西县| 崇明县| 电白县| 神木县| 余江县| 崇信县| 称多县| 城口县| 白城市| 连平县| 呼和浩特市| 泸溪县| 孟州市| 福清市| 安乡县| 龙门县| 彰化县| 栖霞市| 保康县| 临潭县| 河东区| 香河县| 任丘市| 日土县| 清远市| 左权县| 尼勒克县| 谷城县| 陆河县| 呼玛县| 武冈市| 新野县| 南涧| 阳城县| 航空| 九江县| 达尔| 鄂伦春自治旗| 遂川县| 沈丘县|