一文詳解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語句
作用: 執(zhí)行滿足條件的語句
if語句的三種形式:
- 單行格式if語句
- 多行格式if語句
- 多條件的if語句
單行格式if語句:if(條件){ 條件滿足執(zhí)行的語句 }
代碼示例:
int main() {
//選擇結(jié)構(gòu)-單行if語句
//輸入一個分?jǐn)?shù),如果分?jǐn)?shù)大于600分,視為考上一本大學(xué),并在屏幕上打印
int score = 0;
cout << "請輸入一個分?jǐn)?shù):" << endl;
cin >> score;
cout << "您輸入的分?jǐn)?shù)為: " << score << endl;
//if語句
//注意事項(xiàng),在if判斷語句后面,不要加分號
if (score > 600)
{
cout << "我考上了一本大學(xué)?。。? << endl;
}
return 0;
}
注意:if條件表達(dá)式后不要加分號
多行格式if語句:if(條件){ 條件滿足執(zhí)行的語句 }else{ 條件不滿足執(zhí)行的語句 };
代碼示例:
int main() {
//選擇結(jié)構(gòu)-單行if語句
//輸入一個分?jǐn)?shù),如果分?jǐn)?shù)大于600分,視為考上一本大學(xué),并在屏幕上打印
int score = 0;
cout << "請輸入一個分?jǐn)?shù):" << endl;
cin >> score;
cout << "您輸入的分?jǐn)?shù)為: " << score << endl;
//if語句
//注意事項(xiàng),在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 << "請輸入考試分?jǐn)?shù):" << endl;
cin >> score;
if (score > 600)
{
cout << "我考上了一本大學(xué)" << endl;
}
else
{
cout << "我未考上一本大學(xué)" << endl;
}
return 0;
}嵌套if語句:在if語句中,可以嵌套使用if語句,達(dá)到更精確的條件判斷
2、三目運(yùn)算符
作用: 通過三目運(yùn)算符實(shí)現(xiàn)簡單的判斷
語法:表達(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ùn)算符優(yōu)點(diǎn)是短小整潔,缺點(diǎn)是如果用嵌套,結(jié)構(gòu)不清晰
3、switch語句
作用: 執(zhí)行多條件分支語句
語法:
switch(表達(dá)式)
{
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語句中表達(dá)式類型只能是整型或者字符型
注意2:case里如果沒有break,那么程序會一直向下執(zhí)行
總結(jié):與if語句比,對于多條件判斷時,switch的結(jié)構(gòu)清晰,執(zhí)行效率高,缺點(diǎn)是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(起始表達(dá)式;條件表達(dá)式;末尾循環(huán)體) { 循環(huán)語句; }
代碼示例:
int main() {
for (int i = 0; i < 10; i++)
{
cout << i << endl;
}
return 0;
}詳解:
注意:for循環(huán)中的表達(dá)式,要用分號進(jì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使用的時機(jī):
- 出現(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 標(biāo)記;
解釋: 如果標(biāo)記的名稱存在,執(zhí)行到goto語句時,會跳轉(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語句,以免造成程序流程混亂
到此這篇關(guān)于一文詳解C++的程序流程控制的文章就介紹到這了,更多相關(guān)C++流程控制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++實(shí)現(xiàn)LeetCode(201.數(shù)字范圍位相與)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(201.數(shù)字范圍位相與),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
C++中opencv4.1.0環(huán)境配置的詳細(xì)過程
這篇文章主要介紹了C++中opencv4.1.0環(huán)境配置的詳細(xì)過程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-10-10
關(guān)于C++中push_back()函數(shù)的用法及代碼實(shí)例
push_back是vector的一個方法,表示將一個元素存儲到容器的末尾,下面這篇文章主要給大家介紹了關(guān)于C++中push_back()函數(shù)用法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11
C++實(shí)現(xiàn)LeetCode(125.驗(yàn)證回文字符串)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(驗(yàn)證回文字符串).本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
Qt線程QThread開啟和安全退出的實(shí)現(xiàn)
本文主要介紹了Qt線程QThread開啟和安全退出的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06

