網站首頁 編程語言 正文
switch 分支結構
快速入門
案例: 請編寫一個程序,該程序可以接收一個字符,比如: a,b,c,d,e,f,g a 表示星期一,b 表示星期 二 … 根據用戶的輸入顯 示相依的信息.要求使用 switch 語句完成
代碼演示
案例: 請編寫一個程序,該程序可以接收一個字符,比如: a,b,c,d,e,f,g a 表示星期一,b 表示星期 二 … 根據用戶的輸入顯 示相依的信息.要求使用 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("今天星期二, 猴子當小二"); break; case 'c' : printf("今天星期三, 猴子爬雪山"); break; case 'd' : printf("今天星期四, 猴子有急事"); break; default : //default 是可選擇,不是必須的 printf("沒有匹配到任何值~"); } printf("\nswitch 結束~"); }
注意:如果switch 缺少默認值,剛好執行的時候 值匹配不上任意一個case,會發生什么?
答:若沒有匹配的case值,也沒有default語句 ,則跳過switch 語句體 ,什么都不做。
switch 細節討論
1)switch 語句中的 expression 是一個常量表達式,必須是一個整型(char、short, int, long 等) 或枚舉類型
2)case 子句中的值必須是常量,而不能是變量
3)default 子句是可選的,當沒有匹配的 case 時,執行 default
4)break 語句用來在執行完一個 case 分支后使程序跳出 switch 語句塊;
5)如果沒有寫 break,會執行下一個 case 語句塊,直到遇到 break 或者執行到 switch 結尾, 這個現象稱為穿透.
switch 和 if 的比較
1)如果判斷的具體數值不多,而且符合整型 、枚舉類型。雖然兩個語句都可以使用,建議使用 swtich 語句。
2)其他情況:對區間判斷,對結果為 真假 的判斷,使用 if,if 的使用范圍更廣
案例:
對學生成績大于 60 分的,輸出“合格”。低于 60 分的,輸出“不合格”。(注:輸入的成績不能大于 100)
#include<stdio.h> void main() { double d1 = 0.0; printf("請輸入成績"); scanf("%lf", &d1); switch( (int)(d1/60) ) {//即 switch() 括號中,可以是一個復雜表達式 case 0 : printf("不合格"); break; case 1: printf("合格"); break; default : printf("輸入成績有誤"); } }
總結
原文鏈接:https://blog.csdn.net/weixin_45417821/article/details/121971672
相關推薦
- 2022-05-20 Tomcat下載安裝配置詳細過程
- 2022-07-10 Ubuntu 硬盤分區
- 2022-12-11 React?RenderProps模式超詳細講解_React
- 2022-11-06 Android實現圓形圖片小工具_Android
- 2023-02-18 Go?gin權限驗證實現過程詳解_Golang
- 2022-08-05 基于redis+lua進行限流
- 2022-07-11 go語言實現二叉樹的序例化與反序列化_Golang
- 2022-04-12 深入聊聊C語言中的Const關鍵字_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支