網(wǎng)站首頁 編程語言 正文
switch 分支結(jié)構(gòu)
快速入門
案例: 請編寫一個程序,該程序可以接收一個字符,比如: a,b,c,d,e,f,g a 表示星期一,b 表示星期 二 … 根據(jù)用戶的輸入顯 示相依的信息.要求使用 switch 語句完成
代碼演示
案例: 請編寫一個程序,該程序可以接收一個字符,比如: a,b,c,d,e,f,g a 表示星期一,b 表示星期 二 … 根據(jù)用戶的輸入顯 示相依的信息.要求使用 switch 語句完成
#include<stdio.h> void main(){ char c1 = ' '; printf("請輸入一個字符(a,b,c,d)"); scanf("%c", &c1); //switch //表達式: 任何有值都可以看成是一個表達式 scanf("%c", &c1); switch(c1) { case 'a' : //'a' => 97 printf("今天星期一, 猴子穿新衣"); break; //退出 switch case 'b' : printf("今天星期二, 猴子當(dāng)小二"); break; case 'c' : printf("今天星期三, 猴子爬雪山"); break; case 'd' : printf("今天星期四, 猴子有急事"); break; default : //default 是可選擇,不是必須的 printf("沒有匹配到任何值~"); } printf("\nswitch 結(jié)束~"); }
注意:如果switch 缺少默認值,剛好執(zhí)行的時候 值匹配不上任意一個case,會發(fā)生什么?
答:若沒有匹配的case值,也沒有default語句 ,則跳過switch 語句體 ,什么都不做。
switch 細節(jié)討論
1)switch 語句中的 expression 是一個常量表達式,必須是一個整型(char、short, int, long 等) 或枚舉類型
2)case 子句中的值必須是常量,而不能是變量
3)default 子句是可選的,當(dāng)沒有匹配的 case 時,執(zhí)行 default
4)break 語句用來在執(zhí)行完一個 case 分支后使程序跳出 switch 語句塊;
5)如果沒有寫 break,會執(zhí)行下一個 case 語句塊,直到遇到 break 或者執(zhí)行到 switch 結(jié)尾, 這個現(xiàn)象稱為穿透.
switch 和 if 的比較
1)如果判斷的具體數(shù)值不多,而且符合整型 、枚舉類型。雖然兩個語句都可以使用,建議使用 swtich 語句。
2)其他情況:對區(qū)間判斷,對結(jié)果為 真假 的判斷,使用 if,if 的使用范圍更廣
案例:
對學(xué)生成績大于 60 分的,輸出“合格”。低于 60 分的,輸出“不合格”。(注:輸入的成績不能大于 100)
#include<stdio.h> void main() { double d1 = 0.0; printf("請輸入成績"); scanf("%lf", &d1); switch( (int)(d1/60) ) {//即 switch() 括號中,可以是一個復(fù)雜表達式 case 0 : printf("不合格"); break; case 1: printf("合格"); break; default : printf("輸入成績有誤"); } }
總結(jié)
原文鏈接:https://blog.csdn.net/weixin_45417821/article/details/121971672
相關(guān)推薦
- 2022-10-03 Android使用AudioRecord實現(xiàn)錄音功能_Android
- 2022-04-05 availableProcessors is already set to [8], rejecti
- 2022-05-24 C#中WPF顏色對話框控件的實現(xiàn)_C#教程
- 2022-08-10 C#多線程之線程綁定ThreadLocal類_C#教程
- 2023-02-07 Pytorch中的Broadcasting問題_python
- 2022-03-31 jenkins?實現(xiàn)shell腳本化定時執(zhí)行任務(wù)的方法_linux shell
- 2023-03-12 Pandas中根據(jù)條件替換列中的值的四種方式_python
- 2022-06-21 C#實現(xiàn)Array,List,Dictionary相互轉(zhuǎn)換_C#教程
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支