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

用圖示來表示 if…else 語句其實就是當條件為真的時候執(zhí)行某一部分的內容,當條件為假的時候就跳過這部分的內容接著往下執(zhí)行。
2. if…else代碼流程
if (表達式)
{
語句塊1;
}
else
{
語句塊2;
}
if…else語句最常見的流程就是上面這樣。當表達式為真的時候執(zhí)行語句塊1的內容,當表達式為假的時候執(zhí)行語句塊2的內容。那么可能有些人就會問了,表達式什么樣才是真,什么樣才是假?回答這個問題很簡單,只要表達式的結果為0,那么表達式就是假,其余情況都是真。
3. if…else的三種情況
3.1 if語句
if (表達式)
{
語句塊1;
}
當只有 if 的時候,表達式為真就執(zhí)行語句塊1,否則就跳過語句塊的內容。
3.2 if…else語句
if (表達式)
{
語句塊1;
}
else
{
語句塊2;
}
當 if…else 的時候,表達式為真就執(zhí)行語句塊1,表達式為假就執(zhí)行語句塊2。
3.3 if…else if…else語句
if (表達式1)
{
語句塊1;
}
else if(表達式2)
{
語句塊2;
}
else
{
語句塊3;
}
當表達式1為真的時候就只執(zhí)行語句塊1的內容,其余語句塊不執(zhí)行。當表達式1為假并且表達式2為真的時候就只執(zhí)行語句塊2的內容,其余語句塊不執(zhí)行。當表達式1和表達式2都為假的時候執(zhí)行語句塊3的內容,其余語句塊不執(zhí)行。在這種情況下,else if是可以無限加的,并不是只能有一個else if。
需要注意的是else不可以單獨出現(xiàn),if可以單獨出現(xiàn),并且else總是和它同級的那個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;
}二、三目運算符(? :)詳解
表達式1 ? 表達式2 : 表達式3
三目運算符是一個運算符,并且C語言中有且只有一個三目運算符。使用三目運算符可以用來代替 if…else 語句。上面三目運算符的流程為,如果表達式1為真,則將表達式2的結果作為最終運算結果,否則就將表達式3的結果作為最終運算結果。舉例例子具體說明下:
源代碼:
#include <stdio.h>
int main()
{
int a = 0, b = 0, max = 0;
printf("請輸入兩個數(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語句就是,如果表達式1的 結果和下面的表達中任意一個表達式相等,就執(zhí)行對應的代碼塊的內容,而其余代碼塊中的內容不會被執(zhí)行。
2. switch…case代碼流程
switch(表達式1)
{
case 表達式2:
語句塊2;
break;
case 表達式3:
語句塊3;
break;
case 表達式4:
語句塊4;
break;
……
default:
語句塊n;
break;
}
switch…case語句在代碼中的流程一般如上所示。其中表達式1的結果一般是整形常量或字符常量。當表達式的結果和 case 后面的表達式結果一致時,就會執(zhí)行對應的語句塊的內容,否則,就會進入default中,執(zhí)行語句塊n 。然后在break的時候跳出大括號的內容。
在使用 switch…case 語句時有兩點需要大家特別注意。
- 如果語句塊后面沒有break,那么程序就會繼續(xù)執(zhí)行下面的內容,直到遇到下一個break或后面沒有內容時而退出。比方說,表達式1和表達式3的結果相同,程序就會執(zhí)行語句塊3的內容,如果有上面的break,switch…case 語句到此結束,直接跳出 switch 大括號中的所有內容。但是如果這個沒有break,那么程序執(zhí)行完語句塊3后還會接著執(zhí)行語句塊4,直到遇到 break 或 switch 大括號后面沒有內容而退出。
- 在 switch…case 語句中,default 和 case 的位置沒有關系,編譯器都會先找 case,等 case 不滿足條件之后才會找 default。因為一些常規(guī)和標準的寫法 default 都會在最后面,但是在面試筆試中為了考察大家對于 switch…case 語句的掌握程度,會將 default 寫在開頭或中間,所以這個時候大家就要特別注意了。
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;
}到此這篇關于C語言實例講解選擇語句的使用的文章就介紹到這了,更多相關C語言選擇語句內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
利用C++實現(xiàn)通訊錄管理系統(tǒng)的完整代碼
通訊錄是一個可以記錄親人、好友信息的工具,下面這篇文章主要給大家介紹了關于利用C++實現(xiàn)通訊錄管理系統(tǒng)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-06-06
用標準c++實現(xiàn)string與各種類型之間的轉換
這個類在頭文件中定義, < sstream>庫定義了三種類:istringstream、ostringstream和stringstream,分別用來進行流的輸入、輸出和輸入輸出操作。另外,每個類都有一個對應的寬字符集版本2013-09-09
C++命名空間using?namespace?std是什么意思
namespace中文意思是命名空間或者叫名字空間,傳統(tǒng)的C++只有一個全局的namespace,下面這篇文章主要給大家介紹了關于C++命名空間using?namespace?std是什么意思的相關資料,需要的朋友可以參考下2023-01-01

