前言 在C語言中,有三種條件判斷結構:if語句、if-else語句和switch語句。 一、人物簡介 第一位閃亮登場,有請今後會一直教我們C語言的老師 —— 自在。 第二位上場的是和我們一起學習的小白程式猿 —— 逍遙。 二、if語句 基本語法 if (條件) { // 代碼塊1 } 代碼示例 #i ...
前言
在C語言中,有三種條件判斷結構:if語句、if-else語句和switch語句。
一、人物簡介
- 第一位閃亮登場,有請今後會一直教我們C語言的老師 —— 自在。
- 第二位上場的是和我們一起學習的小白程式猿 —— 逍遙。
二、if語句
- 基本語法
if (條件) {
// 代碼塊1
}
- 代碼示例
#include <stdio.h>
int main()
{
int num = 5;
if (num > 0) {
printf("這個數為正數.\n");
}
return 0;
}
- 運行結果
三、if-else語句
- 基本語法
if (條件) {
// 代碼塊1
} else {
// 代碼塊2
}
- 代碼示例
#include <stdio.h>
int main()
{
int num = -2;
if (num > 0) {
printf("這個數為正數.\n");
} else {
printf("這個數為負數.\n");
}
return 0;
}
- 運行結果
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,如果成立,進入內層的if語句繼續判斷num是否小於5;
如果不成立,執行else語句塊,輸出"num小於等於0"。
num的值是3,它既符合外層if語句的條件,也符合內層if語句的條件,所以程式輸出"num在1到4之間"。
- 運行結果
if else語句的鏈式使用
- 代碼示例
#include <stdio.h>
int main() {
int score = 85;
if (score >= 90) {
printf("優秀\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語句被鏈式使用,程式從上到下依次判斷score的值是否大於等於90、是否大於等於80、是否大於等於70、是否大於等於60,最終輸出對應的成績等級。
score的值是85,它大於等於80,但小於90,所以程式輸出"良好"。
- 運行結果
四、switch語句
- 基本語法
switch (expression) {
case constant1:
statement1;
break;
case constant2:
statement2;
break;
...
default:
statementN;
break;
}
- switch語句的執行過程如下:
- 表達式的值被計算。
- 表達式的值被依次與各個case後的常量進行比較,直到找到與之匹配的常量。
- 如果找到匹配的常量,執行該常量對應的代碼塊,並跳出switch語句。
- 如果沒有找到匹配的常量,執行default對應的代碼塊(如果有),並跳出switch語句。
switch
語句中的case
標簽可以是整數、字元或枚舉常量。每個
case
標簽必須是唯一的,且必須以冒號(:
)結尾。在
case
後面的代碼塊中可以包含任意數量的語句,用花括弧({}
)來組成代碼塊。
switch
語句的default
標簽是可選的,它通常放在case
標簽的最後面。如果沒有匹配到任何case
標簽,那麼default
標簽下的代碼塊將被執行。
default
標簽只能出現一次,且必須放在最後一個case
標簽之後,否則會引發編譯錯誤。
switch基礎用法
- 下麵是一個簡單的switch語句示例,用於根據輸入的數字輸出對應的星期幾:
#include <stdio.h>
int main()
{
int day;
printf("請輸入數字(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;
}
- 運行結果
switch高級用法
除了基本用法外,switch語句還有一些高級用法,可以更靈活地使用。
1、case標簽穿透
在switch語句中,如果沒有在一個case語句塊中使用break語句,那麼程式會從這個case開始,一直執行到switch語句的結尾,這種現象被稱為case標簽穿透。
- 下麵是一個case標簽穿透的示例:
#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語句,所以程式執行完case 3之後就跳出了switch語句,不會繼續執行case 4的語句塊。
- 運行結果
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語句被嵌套使用,內層的switch語句只有在外層的case 1被匹配時才會執行。
- 運行結果
小結
通過這篇文章,我們學會了
1、if語句
2、if-else語句
3、switch語句