從頭學(xué)習(xí)C語(yǔ)言之switch語(yǔ)句和分支嵌套
switch 語(yǔ)句:
一個(gè) switch 語(yǔ)句允許測(cè)試一個(gè)變量等于多個(gè)值時(shí)的情況。每個(gè)值稱為一個(gè) case,且被測(cè)試的變量會(huì)對(duì)每個(gè) switch case 進(jìn)行檢查。
注意事項(xiàng):
- 在case每一行的語(yǔ)句或程序塊后面要加上break;(否則程序?qū)?huì)把所有程序塊從前到后運(yùn)行一遍。
- default是可選的,如果上面的case中沒有符合的才會(huì)選擇default(屬于備選情況),但是如果不加default則switch語(yǔ)句則不會(huì)做出任何響應(yīng)。
語(yǔ)句形式:
…//其他語(yǔ)句
switch(表達(dá)式)
{
case 常量表達(dá)式1:語(yǔ)句或程序塊1
case 常量表達(dá)式2:語(yǔ)句或程序塊2
…
case 常量表達(dá)式n:語(yǔ)句或程序塊n
default:語(yǔ)句或程序塊n+1
}
…//其他語(yǔ)句
流程圖:
示例:根據(jù)評(píng)級(jí)查分?jǐn)?shù)區(qū)間:
#include<stdio.h> int main() { char grade; printf("請(qǐng)輸入你的成績(jī):"); scanf("%c",&grade); switch (grade) { case'A':printf("你的成績(jī)大于九十。\n");break; case'B':printf("你的成績(jī)?cè)诎耸值骄攀种g。\n");break; case'C':printf("你的成績(jī)?cè)谄呤值桨耸种g。\n");break; case'D':printf("你的成績(jī)?cè)诹值狡呤种g。\n");break; case'E':printf("你的成績(jī)?cè)诹忠韵?。\n");break; default:printf("請(qǐng)輸入正確的評(píng)級(jí)。\n"); } return 0; }
分支結(jié)構(gòu)的嵌套:
套娃,一個(gè)if語(yǔ)句套一個(gè)if語(yǔ)句或者一個(gè)else語(yǔ)句套一個(gè)if語(yǔ)句。
注意事項(xiàng):
- else總是與其最近的if匹配:無論是switch或if語(yǔ)句,一定要保持寫花括號(hào)的習(xí)慣,否則容易出bug。
- 在if嵌套時(shí),要加入getchar()來屏蔽回車鍵,防止在判斷下一個(gè)表達(dá)式時(shí),將回車鍵算作一個(gè)常量。
- 用if判斷單個(gè)字符時(shí)要加單引號(hào),比如例三。
語(yǔ)句形式:
…//其他語(yǔ)句
if(表達(dá)式)
{
if(表達(dá)式){
…}
else{
…
}
}
else{
…
}
…//其他語(yǔ)句
上方語(yǔ)句為簡(jiǎn)寫形式,講花括號(hào)的前者放到if后面也可以。
流程圖:
示例:
例一:判斷兩個(gè)數(shù)的大小
#include<stdio.h> int main() { int a,b; printf("請(qǐng)輸入兩個(gè)數(shù),以供于判斷大?。?); 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; }
例三:小花做我女朋友?。?/p>
#include<stdio.h> int main() { char a,b; printf("小花,你有男朋友嗎?(Y/N)\n"); scanf("%c",&a); if(a=='Y') { printf("那你們?cè)谝黄鸢?!\n"); } else { getchar(); printf("做我女朋友好不好?(Y/N)\n"); scanf("%c",&b); if(b=='Y') { printf("oh Yeah!\n"); } else { printf("啊這!??!\n"); } } return 0; }
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C++實(shí)現(xiàn)LeetCode(33.在旋轉(zhuǎn)有序數(shù)組中搜索)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(33.在旋轉(zhuǎn)有序數(shù)組中搜索),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07生成隨機(jī)數(shù)rand函數(shù)的用法詳解
本篇文章是對(duì)生成隨機(jī)數(shù)rand函數(shù)的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05C++11?lambda(匿名函數(shù))表達(dá)式詳細(xì)介紹
lambda 表達(dá)式(lambda expression)是一個(gè)匿名函數(shù),C++11中的lambda表達(dá)式用于定義并創(chuàng)建匿名的函數(shù)對(duì)象,以簡(jiǎn)化編程工作,下面這篇文章主要給大家介紹了關(guān)于C++11?lambda(匿名函數(shù))表達(dá)式的相關(guān)資料,需要的朋友可以參考下2022-07-07c語(yǔ)言簡(jiǎn)單實(shí)現(xiàn)文件 r/w 操作方法
由于在 C 語(yǔ)言中 '\' 一般是轉(zhuǎn)義字符的起始標(biāo)志,故在路徑中需要用兩個(gè) '\' 表示路徑中目錄層次的間隔,也可以使用 '/' 作為路徑中的分隔符,本文重點(diǎn)給大家介紹用c語(yǔ)言簡(jiǎn)單實(shí)現(xiàn)文件 r/w 操作方法,感興趣的朋友一起學(xué)習(xí)吧2021-05-05可能是全網(wǎng)最詳細(xì)的Qt連接MySQL數(shù)據(jù)庫(kù)教程
QT眾所周知是一個(gè)開源的,以C++為底層的可視化工具庫(kù),下面這篇文章主要給大家介紹了關(guān)于最詳細(xì)的Qt連接MySQL數(shù)據(jù)庫(kù)教程的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04