C語言實(shí)例講解選擇語句的使用
一、if…else選擇語句詳解
1. 圖示if…else流程

用圖示來表示 if…else 語句其實(shí)就是當(dāng)條件為真的時(shí)候執(zhí)行某一部分的內(nèi)容,當(dāng)條件為假的時(shí)候就跳過這部分的內(nèi)容接著往下執(zhí)行。
2. if…else代碼流程
if (表達(dá)式)
{
語句塊1;
}
else
{
語句塊2;
}
if…else語句最常見的流程就是上面這樣。當(dāng)表達(dá)式為真的時(shí)候執(zhí)行語句塊1的內(nèi)容,當(dāng)表達(dá)式為假的時(shí)候執(zhí)行語句塊2的內(nèi)容。那么可能有些人就會問了,表達(dá)式什么樣才是真,什么樣才是假?回答這個(gè)問題很簡單,只要表達(dá)式的結(jié)果為0,那么表達(dá)式就是假,其余情況都是真。
3. if…else的三種情況
3.1 if語句
if (表達(dá)式)
{
語句塊1;
}
當(dāng)只有 if 的時(shí)候,表達(dá)式為真就執(zhí)行語句塊1,否則就跳過語句塊的內(nèi)容。
3.2 if…else語句
if (表達(dá)式)
{
語句塊1;
}
else
{
語句塊2;
}
當(dāng) if…else 的時(shí)候,表達(dá)式為真就執(zhí)行語句塊1,表達(dá)式為假就執(zhí)行語句塊2。
3.3 if…else if…else語句
if (表達(dá)式1)
{
語句塊1;
}
else if(表達(dá)式2)
{
語句塊2;
}
else
{
語句塊3;
}
當(dāng)表達(dá)式1為真的時(shí)候就只執(zhí)行語句塊1的內(nèi)容,其余語句塊不執(zhí)行。當(dāng)表達(dá)式1為假并且表達(dá)式2為真的時(shí)候就只執(zhí)行語句塊2的內(nèi)容,其余語句塊不執(zhí)行。當(dāng)表達(dá)式1和表達(dá)式2都為假的時(shí)候執(zhí)行語句塊3的內(nèi)容,其余語句塊不執(zhí)行。在這種情況下,else if是可以無限加的,并不是只能有一個(gè)else if。
需要注意的是else不可以單獨(dú)出現(xiàn),if可以單獨(dú)出現(xiàn),并且else總是和它同級的那個(gè)if 相匹配。
4. 代碼示例
源代碼:
#include <stdio.h>
int main()
{
int scores = 0;
printf("Please enter student scores: ");
scanf("%d", &scores);
if (scores < 0) {
printf("input error\n");
} else if (scores < 60) {
printf("Underachievement!\n");
} else if (scores < 80) {
printf("academically qualified!\n");
} else if (scores <= 100) {
printf("perfect grade!\n");
} else {
printf("input error\n");
}
return 0;
}二、三目運(yùn)算符(? :)詳解
表達(dá)式1 ? 表達(dá)式2 : 表達(dá)式3
三目運(yùn)算符是一個(gè)運(yùn)算符,并且C語言中有且只有一個(gè)三目運(yùn)算符。使用三目運(yùn)算符可以用來代替 if…else 語句。上面三目運(yùn)算符的流程為,如果表達(dá)式1為真,則將表達(dá)式2的結(jié)果作為最終運(yùn)算結(jié)果,否則就將表達(dá)式3的結(jié)果作為最終運(yùn)算結(jié)果。舉例例子具體說明下:
源代碼:
#include <stdio.h>
int main()
{
int a = 0, b = 0, max = 0;
printf("請輸入兩個(gè)數(shù): ");
scanf("%d%d", &a, &b);
max = a > b ? a : b;
printf("兩數(shù)中較大的數(shù)是: %d", max);
return 0;
}三、switch…case選擇語句詳解
1. 圖示switch…case流程

switch…case語句就是,如果表達(dá)式1的 結(jié)果和下面的表達(dá)中任意一個(gè)表達(dá)式相等,就執(zhí)行對應(yīng)的代碼塊的內(nèi)容,而其余代碼塊中的內(nèi)容不會被執(zhí)行。
2. switch…case代碼流程
switch(表達(dá)式1)
{
case 表達(dá)式2:
語句塊2;
break;
case 表達(dá)式3:
語句塊3;
break;
case 表達(dá)式4:
語句塊4;
break;
……
default:
語句塊n;
break;
}
switch…case語句在代碼中的流程一般如上所示。其中表達(dá)式1的結(jié)果一般是整形常量或字符常量。當(dāng)表達(dá)式的結(jié)果和 case 后面的表達(dá)式結(jié)果一致時(shí),就會執(zhí)行對應(yīng)的語句塊的內(nèi)容,否則,就會進(jìn)入default中,執(zhí)行語句塊n 。然后在break的時(shí)候跳出大括號的內(nèi)容。
在使用 switch…case 語句時(shí)有兩點(diǎn)需要大家特別注意。
- 如果語句塊后面沒有break,那么程序就會繼續(xù)執(zhí)行下面的內(nèi)容,直到遇到下一個(gè)break或后面沒有內(nèi)容時(shí)而退出。比方說,表達(dá)式1和表達(dá)式3的結(jié)果相同,程序就會執(zhí)行語句塊3的內(nèi)容,如果有上面的break,switch…case 語句到此結(jié)束,直接跳出 switch 大括號中的所有內(nèi)容。但是如果這個(gè)沒有break,那么程序執(zhí)行完語句塊3后還會接著執(zhí)行語句塊4,直到遇到 break 或 switch 大括號后面沒有內(nèi)容而退出。
- 在 switch…case 語句中,default 和 case 的位置沒有關(guān)系,編譯器都會先找 case,等 case 不滿足條件之后才會找 default。因?yàn)橐恍┏R?guī)和標(biāo)準(zhǔn)的寫法 default 都會在最后面,但是在面試筆試中為了考察大家對于 switch…case 語句的掌握程度,會將 default 寫在開頭或中間,所以這個(gè)時(shí)候大家就要特別注意了。
3. 代碼示例
#include <stdio.h>
int main()
{
int scores = 0;
char grade = 'Z';
printf("Please enter student scores: ");
scanf("%d", &scores);
if (scores < 0) {
printf("input error\n");
} else if (scores < 60) {
grade = 'C';
} else if (scores < 80) {
grade = 'B';
} else if (scores <= 100) {
grade = 'A';
} else {
printf("input error\n");
}
switch(grade)
{
case 'A':
printf("perfect grade!\n");
break;
case 'B':
printf("academically qualified!\n");
break;
case 'C':
printf("Underachievement!\n");
break;
default:
printf("input error\n");
break;
}
return 0;
}到此這篇關(guān)于C語言實(shí)例講解選擇語句的使用的文章就介紹到這了,更多相關(guān)C語言選擇語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用C++實(shí)現(xiàn)通訊錄管理系統(tǒng)的完整代碼
通訊錄是一個(gè)可以記錄親人、好友信息的工具,下面這篇文章主要給大家介紹了關(guān)于利用C++實(shí)現(xiàn)通訊錄管理系統(tǒng)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
用標(biāo)準(zhǔn)c++實(shí)現(xiàn)string與各種類型之間的轉(zhuǎn)換
這個(gè)類在頭文件中定義, < sstream>庫定義了三種類:istringstream、ostringstream和stringstream,分別用來進(jìn)行流的輸入、輸出和輸入輸出操作。另外,每個(gè)類都有一個(gè)對應(yīng)的寬字符集版本2013-09-09
C++命名空間using?namespace?std是什么意思
namespace中文意思是命名空間或者叫名字空間,傳統(tǒng)的C++只有一個(gè)全局的namespace,下面這篇文章主要給大家介紹了關(guān)于C++命名空間using?namespace?std是什么意思的相關(guān)資料,需要的朋友可以參考下2023-01-01
C語言詳解實(shí)現(xiàn)鏈?zhǔn)蕉鏄涞谋闅v與相關(guān)接口
二叉樹的鏈?zhǔn)酱鎯Y(jié)構(gòu)是指,用鏈表來表示一棵二叉樹,即用鏈來指示元素的邏輯關(guān)系。通常的方法是鏈表中每個(gè)結(jié)點(diǎn)由三個(gè)域組成,數(shù)據(jù)域和左右指針域,左右指針分別用來給出該結(jié)點(diǎn)左孩子和右孩子所在的鏈結(jié)點(diǎn)的存儲地址2022-04-04
記錄一個(gè)C++在條件查詢時(shí)遇到的問題(推薦)
這篇文章主要介紹了記錄一個(gè)C++在條件查詢時(shí)遇到的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01

