一文詳解C++的程序流程控制
一、前言
C++支持最基本的三種程序運(yùn)行結(jié)構(gòu):
- 順序結(jié)構(gòu)
- 選擇結(jié)構(gòu)
- 循環(huán)結(jié)構(gòu)
順序結(jié)構(gòu):程序按順序執(zhí)行,不發(fā)生跳轉(zhuǎn)
選擇結(jié)構(gòu):依據(jù)條件是否滿足,有選擇的執(zhí)行相應(yīng)功能
循環(huán)結(jié)構(gòu):依據(jù)條件是否滿足,循環(huán)多次執(zhí)行某段代碼 二、選擇結(jié)構(gòu) 1、if語(yǔ)句
作用: 執(zhí)行滿足條件的語(yǔ)句
if語(yǔ)句的三種形式:
- 單行格式if語(yǔ)句
- 多行格式if語(yǔ)句
- 多條件的if語(yǔ)句
單行格式if語(yǔ)句:if(條件){ 條件滿足執(zhí)行的語(yǔ)句 }
代碼示例:
int main() { //選擇結(jié)構(gòu)-單行if語(yǔ)句 //輸入一個(gè)分?jǐn)?shù),如果分?jǐn)?shù)大于600分,視為考上一本大學(xué),并在屏幕上打印 int score = 0; cout << "請(qǐng)輸入一個(gè)分?jǐn)?shù):" << endl; cin >> score; cout << "您輸入的分?jǐn)?shù)為: " << score << endl; //if語(yǔ)句 //注意事項(xiàng),在if判斷語(yǔ)句后面,不要加分號(hào) if (score > 600) { cout << "我考上了一本大學(xué)?。。? << endl; } return 0; }
注意:if條件表達(dá)式后不要加分號(hào)
多行格式if語(yǔ)句:if(條件){ 條件滿足執(zhí)行的語(yǔ)句 }else{ 條件不滿足執(zhí)行的語(yǔ)句 };
代碼示例:
int main() { //選擇結(jié)構(gòu)-單行if語(yǔ)句 //輸入一個(gè)分?jǐn)?shù),如果分?jǐn)?shù)大于600分,視為考上一本大學(xué),并在屏幕上打印 int score = 0; cout << "請(qǐng)輸入一個(gè)分?jǐn)?shù):" << endl; cin >> score; cout << "您輸入的分?jǐn)?shù)為: " << score << endl; //if語(yǔ)句 //注意事項(xiàng),在if判斷語(yǔ)句后面,不要加分號(hào) if (score > 600) { cout << "我考上了一本大學(xué)?。?!" << endl; } return 0; }
多條件的if語(yǔ)句:if(條件1){ 條件1滿足執(zhí)行的語(yǔ)句 }else if(條件2){條件2滿足執(zhí)行的語(yǔ)句}... else{ 都不滿足執(zhí)行的語(yǔ)句}
代碼示例:
int main() { int score = 0; cout << "請(qǐng)輸入考試分?jǐn)?shù):" << endl; cin >> score; if (score > 600) { cout << "我考上了一本大學(xué)" << endl; } else { cout << "我未考上一本大學(xué)" << endl; } return 0; }
嵌套if語(yǔ)句:在if語(yǔ)句中,可以嵌套使用if語(yǔ)句,達(dá)到更精確的條件判斷
2、三目運(yùn)算符
作用: 通過三目運(yùn)算符實(shí)現(xiàn)簡(jiǎn)單的判斷
語(yǔ)法:表達(dá)式1 ? 表達(dá)式2 :表達(dá)式3
解釋:
- 如果表達(dá)式1的值為真,執(zhí)行表達(dá)式2,并返回表達(dá)式2的結(jié)果;
- 如果表達(dá)式1的值為假,執(zhí)行表達(dá)式3,并返回表達(dá)式3的結(jié)果。
代碼示例:
int main() { int a = 10; int b = 20; int c = 0; c = a > b ? a : b; cout << "c = " << c << endl; //C++中三目運(yùn)算符返回的是變量,可以繼續(xù)賦值 (a > b ? a : b) = 100; cout << "a = " << a << endl; cout << "b = " << b << endl; cout << "c = " << c << endl; return 0; }
總結(jié):和if語(yǔ)句比較,三目運(yùn)算符優(yōu)點(diǎn)是短小整潔,缺點(diǎn)是如果用嵌套,結(jié)構(gòu)不清晰
3、switch語(yǔ)句
作用: 執(zhí)行多條件分支語(yǔ)句
語(yǔ)法:
switch(表達(dá)式) { case 結(jié)果1:執(zhí)行語(yǔ)句;break; case 結(jié)果2:執(zhí)行語(yǔ)句;break; ... default:執(zhí)行語(yǔ)句;break; }
代碼示例:
int main() { //請(qǐng)給電影評(píng)分 //10 ~ 9 經(jīng)典 // 8 ~ 7 非常好 // 6 ~ 5 一般 // 5分以下 爛片 int score = 0; cout << "請(qǐng)給電影打分" << endl; cin >> score; switch (score) { case 10: case 9: cout << "經(jīng)典" << endl; break; case 8: cout << "非常好" << endl; break; case 7: case 6: cout << "一般" << endl; break; default: cout << "爛片" << endl; break; } return 0; }
注意1:switch語(yǔ)句中表達(dá)式類型只能是整型或者字符型
注意2:case里如果沒有break,那么程序會(huì)一直向下執(zhí)行
總結(jié):與if語(yǔ)句比,對(duì)于多條件判斷時(shí),switch的結(jié)構(gòu)清晰,執(zhí)行效率高,缺點(diǎn)是switch不可以判斷區(qū)間
三、循環(huán)結(jié)構(gòu)
1、while循環(huán)語(yǔ)句
作用: 滿足循環(huán)條件,執(zhí)行循環(huán)語(yǔ)句
語(yǔ)法: while(循環(huán)條件){ 循環(huán)語(yǔ)句 }
解釋:只要循環(huán)條件的結(jié)果為真,就執(zhí)行循環(huán)語(yǔ)句
示例:
int main() { int num = 0; while (num < 10) { cout << "num = " << num << endl; num++; } return 0; }
注意:在執(zhí)行循環(huán)語(yǔ)句時(shí)候,程序必須提供跳出循環(huán)的出口,否則出現(xiàn)死循環(huán)
2、do…while循環(huán)語(yǔ)句
作用: 滿足循環(huán)條件,執(zhí)行循環(huán)語(yǔ)句
語(yǔ)法: do{ 循環(huán)語(yǔ)句 } while(循環(huán)條件);
注意: 與while的區(qū)別在于do…while會(huì)先執(zhí)行一次循環(huán)語(yǔ)句,再判斷循環(huán)條件
代碼示例:
int main() { int num = 0; do { cout << num << endl; num++; } while (num < 10); return 0; }
總結(jié):與while循環(huán)區(qū)別在于,do…while先執(zhí)行一次循環(huán)語(yǔ)句,再判斷循環(huán)條件
3、for循環(huán)語(yǔ)句
作用: 滿足循環(huán)條件,執(zhí)行循環(huán)語(yǔ)句
語(yǔ)法: for(起始表達(dá)式;條件表達(dá)式;末尾循環(huán)體) { 循環(huán)語(yǔ)句; }
代碼示例:
int main() { for (int i = 0; i < 10; i++) { cout << i << endl; } return 0; }
詳解:
注意:for循環(huán)中的表達(dá)式,要用分號(hào)進(jìn)行分隔
總結(jié):while , do…while, for都是開發(fā)中常用的循環(huán)語(yǔ)句,for循環(huán)結(jié)構(gòu)比較清晰,比較常用
四、跳轉(zhuǎn)語(yǔ)句
1、break語(yǔ)句
作用: 用于跳出選擇結(jié)構(gòu)或者循環(huán)結(jié)構(gòu)
break使用的時(shí)機(jī):
- 出現(xiàn)在switch條件語(yǔ)句中,作用是終止case并跳出switch
- 出現(xiàn)在循環(huán)語(yǔ)句中,作用是跳出當(dāng)前的循環(huán)語(yǔ)句
- 出現(xiàn)在嵌套循環(huán)中,跳出最近的內(nèi)層循環(huán)語(yǔ)句
代碼示例:
int main() { //1、在switch 語(yǔ)句中使用break cout << "請(qǐng)選擇您挑戰(zhàn)副本的難度:" << endl; cout << "1、普通" << endl; cout << "2、中等" << endl; cout << "3、困難" << endl; int num = 0; cin >> num; switch (num) { case 1: cout << "您選擇的是普通難度" << endl; break; case 2: cout << "您選擇的是中等難度" << endl; break; case 3: cout << "您選擇的是困難難度" << endl; break; } return 0; }
2、continue語(yǔ)句
作用: 在循環(huán)語(yǔ)句中,跳過本次循環(huán)中余下尚未執(zhí)行的語(yǔ)句,繼續(xù)執(zhí)行下一次循環(huán)
代碼示例:
int main() { for (int i = 0; i < 100; i++) { if (i % 2 == 0) { continue; } cout << i << endl; } return 0; }
注意:continue并沒有使整個(gè)循環(huán)終止,而break會(huì)跳出循環(huán)
3、goto語(yǔ)句
作用: 可以無(wú)條件跳轉(zhuǎn)語(yǔ)句
語(yǔ)法: goto 標(biāo)記;
解釋: 如果標(biāo)記的名稱存在,執(zhí)行到goto語(yǔ)句時(shí),會(huì)跳轉(zhuǎn)到標(biāo)記的位置
代碼示例:
int main() { cout << "1" << endl; goto FLAG; cout << "2" << endl; cout << "3" << endl; cout << "4" << endl; FLAG: cout << "5" << endl; return 0; }
注意:在程序中不建議使用goto語(yǔ)句,以免造成程序流程混亂
到此這篇關(guān)于一文詳解C++的程序流程控制的文章就介紹到這了,更多相關(guān)C++流程控制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++實(shí)現(xiàn)LeetCode(201.數(shù)字范圍位相與)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(201.數(shù)字范圍位相與),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08C++中opencv4.1.0環(huán)境配置的詳細(xì)過程
這篇文章主要介紹了C++中opencv4.1.0環(huán)境配置的詳細(xì)過程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10C語(yǔ)言基礎(chǔ)知識(shí)點(diǎn)指針的使用
這篇文章主要介紹了C語(yǔ)言基礎(chǔ)知識(shí)點(diǎn)指針的使用,下面文章將讓我們掌握指針的概念和用法、指針與數(shù)組之間的關(guān)系、指針指向的指針、如何使用指針變量做函數(shù)參數(shù)等更多相關(guān)內(nèi)容,需要的小伙伴可以參考一下2022-03-03關(guān)于C++中push_back()函數(shù)的用法及代碼實(shí)例
push_back是vector的一個(gè)方法,表示將一個(gè)元素存儲(chǔ)到容器的末尾,下面這篇文章主要給大家介紹了關(guān)于C++中push_back()函數(shù)用法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11C++實(shí)現(xiàn)LeetCode(125.驗(yàn)證回文字符串)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(驗(yàn)證回文字符串).本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07Qt線程QThread開啟和安全退出的實(shí)現(xiàn)
本文主要介紹了Qt線程QThread開啟和安全退出的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06