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

C語言switch語句和if用法介紹

 更新時間:2021年12月17日 08:39:09   作者:build小春寶  
本文詳細(xì)講解了C語言switch語句和if用法介紹,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

switch語句

我們先了解switch是什么,翻譯過來的中文意思是開關(guān),在C語言中是指選擇不同的開關(guān)即不同的分支來完成語句。接下來講一下switch的結(jié)構(gòu)和基本使用。

一般的switch語句的結(jié)構(gòu)
switch(n){
case 1:
語句1;
break;
case 2:
語句2;
break;
case 3:
語句3;
break;
default:
語句4;
break;
}//當(dāng)然我們一般也喜歡用{}來包括case后面得語句和break
即case 常量/表達(dá)式:{
語句;
語句;
break;
}

switch語句是從case進(jìn),break出,case后面只能跟常量或者常量表達(dá)式,n是一個變量,與if不同的是,if是判斷表達(dá)值是真或假,而switch判斷的是變量中儲存的值具體是多少,然后根據(jù)這個值尋找對應(yīng)的case,當(dāng)所有的case均無法進(jìn)入時會進(jìn)入default這個最后的入口。switch的使用情況一般就是菜單使用和成績表等的等級劃分等。菜單使用相信大家能夠理解,n為不同的值的時候我們會進(jìn)行不同的操作,那么成績表的等級劃分是什么情況呢?

如果你要把九十分以上的人認(rèn)作是優(yōu)秀,八十分以上定義成良好
七十分以上為,中等六十以上不及格,六十以下不及格
你該怎么設(shè)計程序根據(jù)一個人的分?jǐn)?shù)打印他的等級呢?
或許你會選擇這樣的一串代碼
if(n>=90)
printf("優(yōu)秀");
else if(n>=80)
printf("良好");
else if(n>=70)
printf("中等");
else if(n>=60)
printf("及格");
else
printf("不及格");
這個代碼可以清晰的表示你的意思,這樣分支代碼會有點搓
而switch十分適合這種,這個時候肯定會有朋友們疑惑,
case后面只能跟一個具體的常量,不能跟一個范圍,那么一個一個
的寫 case 100
     case 99
     case 98
        .
        .
     case 0
但并不是這樣實現(xiàn)的,一般就行等級規(guī)劃的時候都是有一個共同的特點
我們既可以根據(jù)這個特點來設(shè)計switch
switch(n/10){
case 10:
case  9:
case  8:
case  7:
case  6:
default :
}//具體的代碼實現(xiàn)就寫到這,主要是分享思路

switch和if的區(qū)別

前面只是淺談了switch,接下來看兩張圖片幫助你深入了解switch,并認(rèn)清switch和if的區(qū)別

1.switch語句結(jié)構(gòu)示意圖

第一次畫圖,可能畫的有點難看,希望見諒

2.if語句結(jié)構(gòu)示意圖

看完這兩張圖后,我們來深入了解switch

  • 1.與其說switch是分支結(jié)構(gòu),不如說它是順序結(jié)構(gòu)。
  • 雖然說switch是從不同的case進(jìn)入整個switch內(nèi)部的,但是我們要知道,switch從case進(jìn)入以后只有兩種到達(dá)出口的方式,遇到break和switch語句全部結(jié)束,根據(jù)結(jié)構(gòu)圖也可以知道其實switch的不同語句塊之間其實是從上往下排列的,與順序結(jié)構(gòu)是類似的。
  • 2.if和switch結(jié)構(gòu)上的區(qū)別
  • 根據(jù)兩張圖我們可以清晰的發(fā)現(xiàn),switch的結(jié)構(gòu)類似順序結(jié)構(gòu),而if是互相并列的分支結(jié)構(gòu),if最多只會執(zhí)行其中第一個判斷為真的語句塊,而switch在沒有break傳送門情況下會一直運行進(jìn)入入口后的語句塊直到找到了出口。
  • 3.if和switch共同的分支結(jié)構(gòu)
  • switch既然屬于分支語句,那么就一定存在分支的地方。switch的case語句是分支的,即入口是分支的,這一點和if是一致的,他們的入口都是分支的,并且都是在程序運行時是從上往下逐步判斷是否可以這個入口進(jìn)入語句塊內(nèi)部。

switch的高級(靈活)運用

了解了switch的具體結(jié)構(gòu)及其與if的區(qū)別,接下來講一下如何靈活的運用switch,或者在試題中如何

分析答案

高級的switch使用,其實就兩個要點,靈活利用break和合理對case進(jìn)行適當(dāng)?shù)呐判?
比如剛剛的成績劃分程序,100分和九十多分是一樣的,我們可以進(jìn)行這樣的簡化
case 10:
case 9:
printf("優(yōu)秀");
break;
其實這種情況非常的簡單,大家實際遇到或者運用的時候或許會復(fù)雜很多
但是只要找到程序的特點,并且記住switch的結(jié)構(gòu)以及牢記到達(dá)出口的條件,
大家就可以很輕松的分析程序,并且在慢慢的積累中熟練的掌握。

switch的嵌套實現(xiàn)

switch同樣也可以嵌套,看著或許復(fù)雜,但在培養(yǎng)了一定的程序的思維之后并不難理解,接下來用這個代碼來幫助大家簡單的理解switch的嵌套使用。

這段代碼可用于判斷科舉時進(jìn)士的前三甲
#include<stdio.h>
int main(){
int n;     //存放名次,并用于判斷
printf("請告訴我你的排名:");
scanf("%d",&n);
switch (n / 30) {     
	case 0:     //n/30等于0,即前三十名,進(jìn)入下一層switch
		switch (n) {
		case 1:
			printf("狀元"); //第一名狀元
			break;
		case 2:
			printf("榜眼");  //第二名榜眼
			break;
		case 3:
			printf("探花");  //第三名探花
			break;
		default:
			printf("進(jìn)士及第"); //其余是進(jìn)士及第
		}
		break;
	case 1:      //n/30等于1為30-59名
		switch (n) {      //進(jìn)入下一層switch,30進(jìn)士及第,其余同進(jìn)士及第
		case 30:            
			printf("進(jìn)士及第");
			break;
		default:
			printf("同進(jìn)士及第");
		}
		break;
	case 2://60-89名,進(jìn)入下一層switch
		switch (n) {   //60名為最后一位進(jìn)士,其余全部落榜
		case 60:
			printf("同進(jìn)士及第");
			break;
		default:
			printf("很遺憾你落榜了");
		}
		break;
	default:
		printf("很遺憾你落榜了");
	}
return 0;
}
default因為是最后的入口,所以可以省略break
但在還未靈活使用break和case時建議不要省略break

循環(huán)及循環(huán)的兩個關(guān)鍵字

什么是循環(huán)結(jié)構(gòu)

循環(huán)簡單來說就是,重復(fù)反復(fù)的進(jìn)行一些同樣的操作,這個時候為了節(jié)省代碼量,提高代碼的美觀性時,我們會用循環(huán)語句來包裝那些重復(fù)的語句,而循環(huán)語句中不斷執(zhí)行的語句被稱為循環(huán)體。

下面大家可以根據(jù)這個簡單的圖來理解循環(huán)

這只是其中的一種循環(huán),為了達(dá)到美好的生活,我們不停的學(xué)習(xí),敲代碼,買彩票,直到拿到工作或者彩票中大獎,希望大家看完之后能簡單理解循環(huán)。

break關(guān)鍵字

在switch中,break是一個傳送門,直接帶我們走到出口,在循環(huán)中也是同樣的,break會打破最近的一層循環(huán),作為一個傳送門帶我們達(dá)到美好新生活而不需要判斷是否中獎或者是否有offer

continue關(guān)鍵字

continue在循環(huán)中的作用是結(jié)束這次循環(huán)開始下一次循環(huán),我更喜歡稱它為閃現(xiàn),那什么叫結(jié)束本次循環(huán)呢,比如我們在學(xué)習(xí)后加上一個continue,我們就不需要再敲代碼和買彩票了,但和break不同,它還需要進(jìn)行下一次循環(huán),走出循環(huán)的條件只有兩個就是不符合判定循環(huán)條件和break打破循環(huán),當(dāng)遇到continue時程序會直接結(jié)束本次循環(huán),然后到達(dá)循環(huán)判定條件處來進(jìn)行判定,以判斷是否要進(jìn)行下一次循環(huán),并不能直接送你到達(dá)出口。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

以上所述是小編給大家介紹的C語言switch語句和if用法介紹,希望對大家有所幫助。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • C++中HTTP?代理服務(wù)器的設(shè)計與實現(xiàn)詳解

    C++中HTTP?代理服務(wù)器的設(shè)計與實現(xiàn)詳解

    代理服務(wù)器,即允許一個網(wǎng)絡(luò)終端(一般為客戶端)通過這個服務(wù)與另一?個網(wǎng)絡(luò)終端(一般為服務(wù)器)進(jìn)行非直接的連接,下面我們就來看看如何使用C++設(shè)計與實現(xiàn)一個HTTP?代理服務(wù)器吧
    2024-01-01
  • C語言推箱子游戲?qū)崿F(xiàn)代碼

    C語言推箱子游戲?qū)崿F(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了C語言推箱子游戲?qū)崿F(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • C語言實例之雙向鏈表增刪改查

    C語言實例之雙向鏈表增刪改查

    雙向鏈表(Doubly Linked List)是一種常見的數(shù)據(jù)結(jié)構(gòu),在單鏈表的基礎(chǔ)上增加了向前遍歷的功能,與單向鏈表不同,雙向鏈表的每個節(jié)點除了包含指向下一個節(jié)點的指針外,還包含指向前一個節(jié)點的指針,本文給大家介紹了C語言中雙向鏈表的增刪改查
    2023-08-08
  • C++11的future和promise、parkged_task使用

    C++11的future和promise、parkged_task使用

    這篇文章主要介紹了C++11的future和promise、parkged_task使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 關(guān)于C++面向?qū)ο笤O(shè)計的訪問性問題詳解

    關(guān)于C++面向?qū)ο笤O(shè)計的訪問性問題詳解

    這篇文章主要給大家介紹了關(guān)于C++面向?qū)ο笤O(shè)計的訪問性問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • VC外部符號錯誤_main,_WinMain@16,__beginthreadex解決方法

    VC外部符號錯誤_main,_WinMain@16,__beginthreadex解決方法

    這篇文章主要介紹了VC外部符號錯誤_main,_WinMain@16,__beginthreadex解決方法,實例分析了比較典型的錯誤及對應(yīng)的解決方法,需要的朋友可以參考下
    2015-05-05
  • C++中的函數(shù)返回值問題

    C++中的函數(shù)返回值問題

    這篇文章主要介紹了C++中的函數(shù)返回值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • C++編程指向成員的指針以及this指針的基本使用指南

    C++編程指向成員的指針以及this指針的基本使用指南

    這篇文章主要介紹了C++編程指向成員的指針以及this指針的基本使用指南,與C語言一樣,存儲的數(shù)值被解釋成為內(nèi)存里的一個地址,需要的朋友可以參考下
    2016-01-01
  • 用C語言判斷字符是否為空白字符或特殊字符的方法

    用C語言判斷字符是否為空白字符或特殊字符的方法

    這篇文章主要介紹了用C語言判斷字符是否為空白字符或特殊字符的方法,分別為isspace()函數(shù)的使用和ispunct()函數(shù)的使用,需要的朋友可以參考下
    2015-08-08
  • Qt常用容器類的使用

    Qt常用容器類的使用

    本文主要介紹了Qt常用容器類的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06

最新評論

荔波县| 盐边县| 望江县| 弥勒县| 河北区| 旅游| 彰武县| 澎湖县| 白水县| 水城县| 保定市| 沂水县| 金塔县| 镶黄旗| 四会市| 安吉县| 竹溪县| 双柏县| 于田县| 南漳县| 双峰县| 阳曲县| 建湖县| 隆安县| 留坝县| 镇康县| 区。| 布拖县| 鹤庆县| 合川市| 惠州市| 松溪县| 九台市| 青冈县| 临夏县| 北票市| 富平县| 上林县| 丰镇市| 雅江县| 霞浦县|