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