從頭學習C語言之switch語句和分支嵌套
switch 語句:
一個 switch 語句允許測試一個變量等於多個值時的情況。每個值稱為一個 case,且被測試的變量會對每個 switch case 進行檢查。
註意事項:
- 在case每一行的語句或程序塊後面要加上break;(否則程序將會把所有程序塊從前到後運行一遍。
- default是可選的,如果上面的case中沒有符合的才會選擇default(屬於備選情況),但是如果不加default則switch語句則不會做出任何響應。
語句形式:
…//其他語句
switch(表達式)
{
case 常量表達式1:語句或程序塊1
case 常量表達式2:語句或程序塊2
…
case 常量表達式n:語句或程序塊n
default:語句或程序塊n+1
}
…//其他語句
流程圖:
示例:根據評級查分數區間:
#include<stdio.h> int main() { char grade; printf("請輸入你的成績:"); scanf("%c",&grade); switch (grade) { case'A':printf("你的成績大於九十。\n");break; case'B':printf("你的成績在八十分到九十分之間。\n");break; case'C':printf("你的成績在七十分到八十分之間。\n");break; case'D':printf("你的成績在六十分到七十分之間。\n");break; case'E':printf("你的成績在六十分以下。\n");break; default:printf("請輸入正確的評級。\n"); } return 0; }
分支結構的嵌套:
套娃,一個if語句套一個if語句或者一個else語句套一個if語句。
註意事項:
- else總是與其最近的if匹配:無論是switch或if語句,一定要保持寫花括號的習慣,否則容易出bug。
- 在if嵌套時,要加入getchar()來屏蔽回車鍵,防止在判斷下一個表達式時,將回車鍵算作一個常量。
- 用if判斷單個字符時要加單引號,比如例三。
語句形式:
…//其他語句
if(表達式)
{
if(表達式){
…}
else{
…
}
}
else{
…
}
…//其他語句
上方語句為簡寫形式,講花括號的前者放到if後面也可以。
流程圖:
示例:
例一:判斷兩個數的大小
#include<stdio.h> int main() { int a,b; printf("請輸入兩個數,以供於判斷大小:"); scanf("%d %d",&a,&b); if(a<b) { printf("%d<%d\n",a,b); } else { if(a==b) { printf("%d=%d\n",a,b); } else { printf("%d>%d\n",a,b); } } return 0; }
例二:約小花出門玩:
#include<stdio.h> int main() { char israin,isfree; printf("是否有空?(Y/N)\n"); scanf("%c",&isfree); if(isfree=='Y') { printf("這就很好嘍!\n"); getchar();//這裡是用getchar()來頻屏蔽回車鍵 printf("是否下雨?(Y/N)\n"); scanf("%c",&israin); if(israin=='Y') { printf("記得帶傘哦!!!\n"); } else { printf("那你快出來吧!!!\n"); } } else { printf("那算瞭!\n"); } return 0; }
例三:小花做我女朋友!!
#include<stdio.h> int main() { char a,b; printf("小花,你有男朋友嗎?(Y/N)\n"); scanf("%c",&a); if(a=='Y') { printf("那你們在一起吧!\n"); } else { getchar(); printf("做我女朋友好不好?(Y/N)\n"); scanf("%c",&b); if(b=='Y') { printf("oh Yeah!\n"); } else { printf("啊這!!!\n"); } } return 0; }
總結
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!