網站首頁 編程語言 正文
一、if…else選擇語句詳解
1. 圖示if…else流程
??????? 用圖示來表示 if…else 語句其實就是當條件為真的時候執行某一部分的內容,當條件為假的時候就跳過這部分的內容接著往下執行。
2. if…else代碼流程
if (表達式)
{
? ? 語句塊1;
}
else
{
? ? 語句塊2;
}
??????? if…else語句最常見的流程就是上面這樣。當表達式為真的時候執行語句塊1的內容,當表達式為假的時候執行語句塊2的內容。那么可能有些人就會問了,表達式什么樣才是真,什么樣才是假?回答這個問題很簡單,只要表達式的結果為0,那么表達式就是假,其余情況都是真。
3. if…else的三種情況
3.1 if語句
if (表達式)
{
? ? 語句塊1;
}
當只有 if 的時候,表達式為真就執行語句塊1,否則就跳過語句塊的內容。
3.2 if…else語句
if (表達式)
{
? ? 語句塊1;
}
else
{
? ? 語句塊2;
}
當 if…else 的時候,表達式為真就執行語句塊1,表達式為假就執行語句塊2。
3.3 if…else if…else語句
if (表達式1)
{
? ? 語句塊1;
}
else if(表達式2)
{
? ? 語句塊2;
}
else
{
?? ?語句塊3;
}
???????當表達式1為真的時候就只執行語句塊1的內容,其余語句塊不執行。當表達式1為假并且表達式2為真的時候就只執行語句塊2的內容,其余語句塊不執行。當表達式1和表達式2都為假的時候執行語句塊3的內容,其余語句塊不執行。在這種情況下,else if是可以無限加的,并不是只能有一個else if。
???????需要注意的是else不可以單獨出現,if可以單獨出現,并且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("請輸入兩個數: ");
scanf("%d%d", &a, &b);
max = a > b ? a : b;
printf("兩數中較大的數是: %d", max);
return 0;
}
三、switch…case選擇語句詳解
1. 圖示switch…case流程
???????switch…case語句就是,如果表達式1的 結果和下面的表達中任意一個表達式相等,就執行對應的代碼塊的內容,而其余代碼塊中的內容不會被執行。
2. switch…case代碼流程
?? ?switch(表達式1)
?? ?{
?? ??? ?case 表達式2:
?? ??? ??? ?語句塊2;
?? ??? ??? ?break;
?? ??? ?case 表達式3:
?? ??? ??? ?語句塊3;
?? ??? ??? ?break;
?? ??? ?case 表達式4:
?? ??? ??? ?語句塊4;
?? ??? ??? ?break;
?? ??? ?……
?? ??? ?default:
?? ??? ??? ?語句塊n;
?? ??? ??? ?break;
?? ?}
???????switch…case語句在代碼中的流程一般如上所示。其中表達式1的結果一般是整形常量或字符常量。當表達式的結果和 case 后面的表達式結果一致時,就會執行對應的語句塊的內容,否則,就會進入default中,執行語句塊n 。然后在break的時候跳出大括號的內容。
在使用 switch…case 語句時有兩點需要大家特別注意。
- 如果語句塊后面沒有break,那么程序就會繼續執行下面的內容,直到遇到下一個break或后面沒有內容時而退出。比方說,表達式1和表達式3的結果相同,程序就會執行語句塊3的內容,如果有上面的break,switch…case 語句到此結束,直接跳出 switch 大括號中的所有內容。但是如果這個沒有break,那么程序執行完語句塊3后還會接著執行語句塊4,直到遇到 break 或 switch 大括號后面沒有內容而退出。
- 在 switch…case 語句中,default 和 case 的位置沒有關系,編譯器都會先找 case,等 case 不滿足條件之后才會找 default。因為一些常規和標準的寫法 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;
}
原文鏈接:https://blog.csdn.net/liung_/article/details/123023524
相關推薦
- 2022-08-19 serialVersionUID的重要性,及Idea自動生成 serialVersionUID的設置
- 2022-05-27 C++?算法精講之貪心算法_C 語言
- 2022-06-28 ES6基礎語法之Map和Set對象_基礎知識
- 2022-12-12 python?打印完整異常問題_python
- 2022-04-08 在python中創建表格的兩種方法實例_python
- 2021-12-01 騰訊云服務器搭建Jenkins詳細介紹_Linux
- 2022-07-14 python?中的requirements.txt?文件的使用詳情_python
- 2022-08-29 Python可視化神器pyecharts之繪制箱形圖_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支