C語言中條件判斷的正確使用姿勢
前言
在C語言中,有三種條件判斷結(jié)構(gòu):if語句、if-else語句和switch語句。
一、if語句
基本語法
if (條件) {
// 代碼塊1
}
代碼示例
#include <stdio.h> int main() { int num = 5; if (num > 0) { printf("這個數(shù)為正數(shù).\n"); } return 0; }
運(yùn)行結(jié)果
二、if-else語句
基本語法
if (條件) {
// 代碼塊1
} else {
// 代碼塊2
}
代碼示例
#include <stdio.h> int main() { int num = -2; if (num > 0) { printf("這個數(shù)為正數(shù).\n"); } else { printf("這個數(shù)為負(fù)數(shù).\n"); } return 0; }
運(yùn)行結(jié)果
if語句嵌套使用
代碼示例
#include <stdio.h> int main() { int num = 3; if (num > 0) { if (num < 5) { printf("num在1到4之間\n"); } else { printf("num大于等于5\n"); } } else { printf("num小于等于0\n"); } return 0; }
在這個示例中,外層的if語句判斷num是否大于0,如果成立,進(jìn)入內(nèi)層的if語句繼續(xù)判斷num是否小于5;
如果不成立,執(zhí)行else語句塊,輸出"num小于等于0"。
num的值是3,它既符合外層if語句的條件,也符合內(nèi)層if語句的條件,所以程序輸出"num在1到4之間"。
運(yùn)行結(jié)果
if else語句的鏈?zhǔn)绞褂?/h3>
代碼示例
#include <stdio.h> int main() { int score = 85; if (score >= 90) { printf("優(yōu)秀\n"); } else if (score >= 80) { printf("良好\n"); } else if (score >= 70) { printf("中等\n"); } else if (score >= 60) { printf("及格\n"); } else { printf("不及格\n"); } return 0; }
在這個示例中,if else語句被鏈?zhǔn)绞褂?,程序從上到下依次判斷score的值是否大于等于90、是否大于等于80、是否大于等于70、是否大于等于60,最終輸出對應(yīng)的成績等級。
score的值是85,它大于等于80,但小于90,所以程序輸出"良好"。
運(yùn)行結(jié)果
三、switch語句
基本語法
switch (expression) { case constant1: statement1; break; case constant2: statement2; break; ... default: statementN; break; }
switch語句的執(zhí)行過程如下:
- 表達(dá)式的值被計算。
- 表達(dá)式的值被依次與各個case后的常量進(jìn)行比較,直到找到與之匹配的常量。
- 如果找到匹配的常量,執(zhí)行該常量對應(yīng)的代碼塊,并跳出switch語句。
- 如果沒有找到匹配的常量,執(zhí)行default對應(yīng)的代碼塊(如果有),并跳出switch語句。
switch
語句中的case
標(biāo)簽可以是整數(shù)、字符或枚舉常量。
每個case
標(biāo)簽必須是唯一的,且必須以冒號(:
)結(jié)尾。
在case
后面的代碼塊中可以包含任意數(shù)量的語句,用花括號({}
)來組成代碼塊。
switch
語句的default
標(biāo)簽是可選的,它通常放在case
標(biāo)簽的最后面。如果沒有匹配到任何case
標(biāo)簽,那么default
標(biāo)簽下的代碼塊將被執(zhí)行。
default
標(biāo)簽只能出現(xiàn)一次,且必須放在最后一個case
標(biāo)簽之后,否則會引發(fā)編譯錯誤。
switch基礎(chǔ)用法
下面是一個簡單的switch語句示例,用于根據(jù)輸入的數(shù)字輸出對應(yīng)的星期幾:
#include <stdio.h> int main() { int day; printf("請輸入數(shù)字(1-7):"); 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"); break; case 7: printf("星期日\n"); break; default: printf("輸入錯誤!\n"); break; } return 0; }
運(yùn)行結(jié)果
switch高級用法
除了基本用法外,switch語句還有一些高級用法,可以更靈活地使用。
1、case標(biāo)簽穿透
在switch語句中,如果沒有在一個case語句塊中使用break語句,那么程序會從這個case開始,一直執(zhí)行到switch語句的結(jié)尾,這種現(xiàn)象被稱為case標(biāo)簽穿透。
下面是一個case標(biāo)簽穿透的示例:
#include <stdio.h> int main() { int num = 3; switch (num) { case 1: case 2: printf("num是1或2\n"); break; case 3: case 4: printf("num是3或4\n"); break; default: printf("num不是1、2、3、4\n"); break; } return 0; }
在這個示例中,num的值是3,它既符合case 3的條件,也符合case 4的條件,但是由于case 3的語句塊中使用了break語句,所以程序執(zhí)行完case 3之后就跳出了switch語句,不會繼續(xù)執(zhí)行case 4的語句塊。
運(yùn)行結(jié)果
2、switch語句嵌套
在C語言中,switch語句可以嵌套使用,例如:
#include <stdio.h> int main() { int num = 1; switch (num) { case 1: printf("num是1\n"); switch (num) { case 2: printf("num是2\n"); break; default: printf("num不是2\n"); break; } break; case 3: printf("num是3\n"); break; default: printf("num既不是1也不是3\n"); break; } return 0; }
在這個示例中,switch語句被嵌套使用,內(nèi)層的switch語句只有在外層的case 1被匹配時才會執(zhí)行。
運(yùn)行結(jié)果
到此這篇關(guān)于C語言中條件判斷的正確使用姿勢的文章就介紹到這了,更多相關(guān)C語言條件判斷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c語言實現(xiàn)24小時制轉(zhuǎn)換為12小時制示例
這篇文章主要介紹了c語言實現(xiàn)24小時制轉(zhuǎn)換為12小時制示例,需要的朋友可以參考下2014-04-04Qt音視頻開發(fā)之音頻播放QAudioOutput的實現(xiàn)
這篇文章主要為大家詳細(xì)介紹了如何利用Qt實現(xiàn)音頻播放QAudioOutput功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Qt開發(fā)有一定的幫助,需要的可以參考一下2023-03-03