前言
?? ??hello! 各位寶子們大家好啊,又是新的一天開始了,今天給大家?guī)淼膕witch語句的全面講解!
?? ??預計博主這倆天會把分支語句和循環(huán)語句給徹底更新完,然后向函數(shù)出發(fā)!
?? ??本期文章收錄在《C語言初階篇》,大家有興趣可以看看吶!
???? 歡迎鐵汁們 ?? 點贊 ?? 收藏 ?留言 ??!
?? switch語句的介紹
??前面的一篇:《if語句的詳解》
我們已經(jīng)學會了if語句那么大家來看看這種情況:
?? 那么我們想編寫一下這段程序該怎么辦:
輸入1,輸出星期一
輸入2,輸出星期二
輸入3,輸出星期三
輸入4,輸出星期四
輸入5,輸出星期五
輸入6,輸出星期六
輸入7,輸出星期日
? 如果用if的多分支來實現(xiàn)呢?
代碼演示;
#include <stdio.h>
int main()
{
int day = 0;
//輸入
scanf("%d", &day);
if (1 == day)
printf("星期1\n");
else if (2 == day)
printf("星期2\n");
else if (3 == day)
printf("星期3\n");
else if (4 == day)
printf("星期4\n");
else if (5 == day)
printf("星期5\n");
else if (6 == day)
printf("星期6\n");
else if (7 == day)
printf("星期天\n");
else
printf("輸入錯誤\n");
return 0;
}
- 大家發(fā)現(xiàn)沒,用
if...else
if ...else if
的形式太復雜,所以我們C語言就有了switch這個語法形式。
?? switch語句:
switch語句也是一種分支語句。常常用于多分支的情況。
??語法形式:
switch(整型表達式)
{
case 整形常量表達式:
語句;
}
?? switch語句的語法形式
前面我們給大家簡單介紹了一下:
switch
語句的作用和語法形式那么該怎么使用呢?
- ?? 我們按照語法寫看下對不對呢?
#include <stdio.h>
int main()
{
int day = 0;
//輸入
scanf("%d", &day);
switch (day)
{
case 1:
printf("星期一");
case 2:
printf("星期二");
case 3:
printf("星期三");
case 4:
printf("星期四");
case 5:
printf("星期五");
case 6:
printf("星期六");
case 7:
printf("星期天");
}
return 0;
}
?? 演示結果:
??誒大家會發(fā)現(xiàn),這和我們預計的根本不一樣?
- ?? 我們預計的是,按3之后只輸出星期三。
- ?? 實際是,程序把星期三后面的全部都給輸出了。
- ?? 這時就會需要我們的 break語句了
- ??下面我們來介紹一下它的作用
?? 在switch語句中的 break
??在switch語句中,我們沒辦法直接實現(xiàn)分支,搭配break使用才能實現(xiàn)真正的分支。
?? 而break是什么意思呢:
- ??
break
英文意思是結束。 - ?? 而我們前面出現(xiàn)的問題就是,
case語句
沒有結束 - ?? 每次從我們選擇的那個分支一直繼續(xù)。
- ?? 所以我們需要每次在
case語句
后面加上break語句
結束就好了。
?? 代碼演示:
#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");
case 7:
printf("星期天\n");
break;
}
return 0;
}
?? 代碼結果:
哦豁,這下我們是不是就把問題給解決了。
- 知識點
- ?? 在
switch語句
中,caes是我們分支語句的入口。 - ??
break
是我們分支語句的出口,跳出分支。
?? 而有時候我們的需求變了:
?? 該怎么編寫呢?
- 輸入1-5,輸出的是“weekday”;
- 輸入6-7,輸出“weekend”
?? 代碼演示:
#include <stdio.h>
//switch代碼演示
int main()
{
int day = 0;
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday\n");
break;
case 6:
case 7:
printf("weekend\n");
break;
}
return 0;
}
?? 這樣我們就完美解決問題啦!
?? default子句
??前面我們詳細講解了,switch語句
:
- 但是有沒有想過一個問題如果我們輸入9會怎么樣?
#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");
case 7:
printf("星期天\n");
break;
}
return 0;
}
??說明:
- ?? 如果表達的值與所有的case標簽的值都不匹配怎么辦?
- ?? 其實也沒什么,結構就是所有的語句都被跳過而已。
- ?? 程序并不會終止,也不會報錯,因為這種情況在C中并不認為是個錯誤。
- ?? 但是,如果你并不想忽略不匹配所有標簽的表達式的值時該怎么辦呢?
- ?? 你可以在語句列表中增加一條default子句,把下面的標簽
default:
- ?? 寫在任何一個 case 標簽可以出現(xiàn)的位置。
?? 代碼演示:
#include <stdio.h>
int main()
{
int day = 0;
//輸入
scanf("%d", &day);
switch (day)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
default:
printf("輸入錯誤!\n");
}
return 0;
}
?? 代碼結果:
?? default的意思:
- ?? 當 switch 表達式的值并不匹配所有 case 標簽的值時
- ?? 這個 default 子句后面的語句就會執(zhí)行。
- ?? 所以,每個switch語句中只能出現(xiàn)一條default子句。
- ?? 但是它可以出現(xiàn)在語句列表的任何位置
- ?? 而且語句流會像執(zhí)行一個case標簽一樣執(zhí)行default子句。
?? 編程好習慣
在每個 switch 語句中都放一條default子句是個好習慣,甚至可以在后邊再加一個 break 。
?? switch語句的注意事項
?? switch語句我們都介紹完了,但是這些細節(jié)可別忘記哦!
- ??
switch( )
的括號里面必須是 整形表達式- ??
caes語句
后面必須跟 整形表達式整形常量表達式- 下面我給大家示范一下錯誤案例。
??錯誤案例
??switch( ) 的括號使用 浮點數(shù)
?? 代碼演示:
#include <stdio.h>
int main()
{
float day = 0;
//輸入
scanf("%d", &day);
switch (day)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
default:
printf("輸入錯誤!\n");
}
return 0;
}
?? 代碼結果:
??caes語句后面跟 變量
?? 代碼演示:
#include <stdio.h>
int main()
{
int day = 0;
int n = 1;//后面的f表示是個浮點數(shù)一般建議加上
//輸入
scanf("%d", &day);
switch (day)
{
case n:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
default:
printf("輸入錯誤!\n");
}
return 0;
}
?? 代碼結果:
??const 修飾的常變量可以嘛?
?? 代碼演示:
#include <stdio.h>
int main()
{
int day = 0;
const int n = 1;//后面的f表示是個浮點數(shù)一般建議加上
//輸入
scanf("%d", &day);
switch (day)
{
case n:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
default:
printf("輸入錯誤!\n");
}
return 0;
}
?? 代碼結果:
?? 注:在C++標準里面const修飾的常變量,就不在是一個變量了,而是一個常量所以在switch里面是可以跟在case后面的!
?? 代碼演示:
#include <stdio.h>
int main()
{
int day = 0;
const int n = 1;//后面的f表示是個浮點數(shù)一般建議加上
//輸入
scanf("%d", &day);
switch (day)
{
case n:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
default:
printf("輸入錯誤!\n");
}
return 0;
}
?? 代碼結果:
?? 注:.cpp是C++程序的后綴名。文章來源:http://www.zghlxwxcb.cn/news/detail-529670.html
總結
? 歸納:
好了以上就是關于分支語句 switch 的用法,和注意事項就全部講解完畢啦!
??switch的介紹
??switch的語法
??switch中的break
??default語句
??switch的注意事項
?? 把本章的內(nèi)容全部掌握,鐵汁們就可以熟練應用switch語句啦!
看到這里了還不給博主扣個:
?? 點贊
??收藏
?? 關注
!
?? ?? ?? ?? ???? ?? ?? ?? ?? ??
拜托拜托這個真的很重要!
你們的點贊就是博主更新最大的動力!
有問題可以評論或者私信呢秒回哦。文章來源地址http://www.zghlxwxcb.cn/news/detail-529670.html
到了這里,關于《C語言初階》這篇文章帶你全面認識switch語句的用法!的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!