c++基礎十(流程結構)
目錄
程式流程結構
基本的三種程式執行結構:順序結構、選擇結構、迴圈結構
1.順序結構:程式從上至下按順序執行,中途不發生跳轉
2.選擇結構:依據條件是否滿足,有選擇的進行相應的功能
3.迴圈結構:依據條件是否滿足,多次迴圈執行某段程式碼
1.選擇結構
1.1 作用
執行滿足條件的語句
1.2 if
1.2.1 單行格式
語法:
if(條件){條件滿足後,所執行的語句}
流程圖:
程式碼:
#include <iostream>
using namespace std;
int main()
{
//輸入一個分數,大於60為及格並且輸出
double a;
cout<<"請輸入分數:"<<endl;
cin>>a;
if (a>=60)
{
cout<< "此成績以及格" <<endl;
}
system("pause");
return 0 ;
}
執行結果:
1.2.2 多行格式
語法:
if(條件)
{條件滿足後,所執行的語句}
else
{不滿足條件,所執行的語句}
流程圖:
程式碼:
#include <iostream>
using namespace std;
int main()
{
//輸入一個分數,大於60為及格並且輸出,低於 60為掛科並且輸出
double a;
cout<<"請輸入分數:"<<endl;
cin>>a;
if (a>=60)
{
cout<< "此成績以及格" <<endl;
}
else
{
cout<<"此成績以掛科"<<endl;
}
system("pause");
return 0 ;
}
執行介面:
1.2.3 多條件格式
if(條件)
{條件滿足後,所執行的語句}
else if(條件)
{不滿足條件,所執行的語句}
else if(條件)
{不滿足條件,所執行的語句}
…
else
{不滿足條件,所執行的語句}
注:最後一個條件判斷可以為else,也可以為else if
流程圖:
程式碼:
#include <iostream>
using namespace std ;
int main ()
{
//輸入三個數,從這三個數中找出最大值
double a,b,c;
cout<<"請輸入三個數:"<<endl;
cin>>a;
cin>>b;
cin>>c;
double max=a;
if (b>a)
{
max=b;
if (c>b)
{
max=c;
}
}
else
{
if (c>a)
{
max=c;
}
}
cout<<"最大值為:"<<max<<endl;
system ("pause");
return 0;
}
執行介面:
1.3 三目運算子
作用:能實現簡單的判斷
語法:表示式1?表示式2:表示式3
解釋:如果表示式1的條件為真,則執行表示式2的語句;如果表示式1的條件為假,則執行表示式3中的語句
注:三目運算子返回的是變數,可以繼續賦值
程式碼:
#include <iostream>
using namespace std ;
int main()
{
//判斷兩個值的大小,並且輸出最大值
double a,b,max;
cout<<"請輸入兩個數" <<endl;
cin>>a;
cin>>b;
max=a>b?a:b; //三目運算子返回的是變數,可以繼續賦值
cout<<"最大值為"<<max<<endl;
system ("pause");
return 0;
}
執行介面:
1.4 switch
作用:執行多條件分支語句
語法:
switch(表示式)
{
case 結果1:執行語句;break;
case 結果2:執行語句;break;
case 結果3:執行語句; break;
… … …
case 結果n:執行語句;break;
default:執行語句;break;
}
解釋:
當變數表示式所表達的量與其中一個case語句中的常量相符時,就執行此case語句後面的語句,並依次下去執行後面所有case語句中的語句,除非遇到break;語句跳出switch語句為止。如果變數表示式的量與所有case語句的常量都不相符,就執行default語句中的語句
注:case後面的結果必須為整型和字元型,不可以是一個區間
程式碼:
#include <iostream>
using namespace std ;
int main ()
{
//給一部電影進行評分,取值範圍0~10並且都為整數,其中0~5為差評,6~8為,9~10為好評
int rating;
cout<<"請輸入你對此電影的評分:"<<endl;
cin>>rating;
switch (rating)
{
case 10:
case 9:cout<<"好評"<<endl;
break;
case 8:
case 7:
case 6:cout<<"中評"<<endl;
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:cout<<"差評"<<endl;
break;
default :cout<<"你輸入的評分不在範圍內"<<endl;
break;
}
system("pause");
return 0;
}
執行介面:
1.5 小結
if | switch | 三目運算子 | |
---|---|---|---|
判斷次數 | n | n | 1 |
區別 | if能進行巢狀,能精確處理更復雜的邏輯問題 | switch通過表示式的值,能快速執行相應的語句,但侷限性是表示式的值只能是整型和字元型 | 三目運算子只能判斷一次,但方便,快捷,而且是一個變數,可以直接進行賦值操作 |
2.迴圈結構
2.1 作用
依據條件是否滿足,多次迴圈執行某段程式碼
2.2 while
語法:
while(迴圈條件)
{ 迴圈語句}
流程圖:
程式碼:
#include <iostream>
using namespace std;
int main ()
{
//螢幕上列印0~10的數
int num=0;
while (num<11)
{
cout<<num<<endl;
num++;
}
system("pause");
return 0;
}
執行介面:
2.3 do while
語法:
do
{迴圈語句}
while(迴圈條件);
注:while與do while的區別是,do while是先執行迴圈語句,再判斷條件
流程圖:
程式碼:
#include <iostream>
using namespace std ;
int main ()
{
//螢幕上列印1~10所有數
int num=1;
do
{
cout<<num<<" ";
num++;
}
while (num<11);
system ("pause");
return 0;
}
執行介面:
2.3 for
語法:
for(表示式1;表示式2;表示式3)
{迴圈語句}
注:表示式可以為空值
流程圖:
程式碼:
#include <iostream>
using namespace std;
int main()
{
//螢幕上列印1~10所有數
for (int i=1;i<11;i++)
{
cout<<i<<" ";
}
system ("pause");
return 0;
}
執行介面:
2.4 巢狀迴圈
作用:在迴圈體中進行多次迴圈,用於更精確地解決一些實際問題
例:九九乘法表
思想:從行和列出發,先用大迴圈,表示行數,再用小迴圈表示列數;限制小迴圈判斷條件,用來形成梯形的形狀
程式碼:
#include <iostream>
using namespace std ;
int main ()
{
//九九乘法表
int i=1;
while (i<10)
{
for (int j=1;j<=i;j++)
{
cout<<i<<"*"<<j<<"="<<i*j<<"\t";
}
cout<<endl;
i++;
}
system("pause");
return 0;
}
執行介面:
2.5 小結
while,do…while和for,三者都有迴圈的功能,while和do…while的區別是判斷條件的先後,for和前面兩者相比,結構會更加的清楚
相關文章
- Go基礎系列:流程控制結構Go
- C++基礎總結C++
- Elasticsearch基礎結構Elasticsearch
- MySQL基礎架構執行流程MySql架構
- C++基礎簡單總結C++
- Redis基礎資料結構Redis資料結構
- Kotlin 基礎-程式結構(上)Kotlin
- 5.MySQL 基礎結構MySql
- 資料結構基礎 連結串列資料結構
- Redis基礎——剖析基礎資料結構及其用法Redis資料結構
- C++基礎入門---8.結構體【P64~P71】C++結構體
- Golang基礎程式設計(一)-基本結構、資料型別、流程語句Golang程式設計資料型別
- c++基礎C++
- Django基礎流程Django
- 逆向基礎(十)
- 基礎資料結構大賞資料結構
- oracle11grac基礎結構Oracle
- 【Java基礎】03選擇結構Java
- Pytorch基礎-tensor資料結構PyTorch資料結構
- 《資料結構與演算法》之十大基礎排序演算法資料結構演算法排序
- 入門篇-其之十-流程控制之迴圈結構
- Redis基礎資料結構之連結串列Redis資料結構
- C++基礎 constC++
- 【C++】C++基礎知識C++
- DRF基礎操作流程
- 前端基礎(十):promise前端Promise
- 資料結構基礎--雜湊表資料結構
- PostgreSQL Page頁結構解析(1)-基礎SQL
- 資料結構基礎第3講資料結構
- 資料結構基礎第4講資料結構
- Redis基礎資料結構之字串Redis資料結構字串
- Redis基礎資料結構之MapRedis資料結構
- Redis基礎資料結構之SkipListRedis資料結構
- 基礎資料結構之遞迴資料結構遞迴
- 基礎資料結構之陣列資料結構陣列
- 淺析Redis基礎資料結構Redis資料結構
- 大資料基礎架構總結大資料架構
- [Java 基礎]Java 程式的基本結構Java