1. 程式人生 > ><C++學習三>控制流

<C++學習三>控制流

bre 條件 學習 case str 問題 ring clas 開始

控制流:C++提供了幾種常見的控制流,來滿足我們復雜多變的程序設計順序。

(1)while語句

基本語法:

1 while(condition)
2     statement

while反復的執行statement中的代碼,知道condition中的條件判定為false為止。

例:輸入一些數,求和

 1 #include<iostream>
 2 
 3 using namespace std;
 4 
 5 int main(){
 6     int sum = 0;
 7     int x = 0;
 8     
 9     while(cin >> x){
10 sum += x; 11 } 12 13 cout << "所求數和為:" << sum << std; 14 system("pause"); 15 return 0; 16 }

在Windows系統下,結束輸入的組合鍵是 Ctrl + Z,然後回車。 Linux系統下是 Ctrl + D。 Max OS系統下是 Ctrl + D;

註意:while語句還有一種do while的形式,這種形式下,要註意執行語句至少執行一次。

(2)for語句

基本語法:

1 for(init-statement;condition;expression)
2 statement

每個for語句都包含兩個部分:循環頭和循環體。循環頭控制循環體的執行次數,它由三個部分組成:一個初始化語句(init-statement),一個循環條件(condition)以及一個表達式(expression)。

例:求整數1到99的和。

 1 #include<iostream>
 2 
 3 using namespace std;
 4 
 5 int main(){
 6     int sum = 0;
 7     int x = 0;
 8     
 9     for(int i = 0; i < 100; i++){
10         sum += i;
11 } 12 13 cout << "整數1到99的和為:" << sum << endl; 14 15 system("pause"); 16 return 0; 17 }

註意:for語句的初始化語句、循環條件、表達式都是可以省略的。例如for( ; ; ){},相當於while(true){}。所以,for語句使用不當,會造成死循環。

基本語法(範圍for語句):

1 for(declaration : expression)
2     statement

declaration定義了一個變量,序列中的每個元素都是能轉換成該變量的類型。

expression必須是一個序列。例如可以使數組、vector或者string等對象。

例:

 1 #include<iostream>
 2 #include<vector>
 3 
 4 using namespace std;
 5 
 6 int main(){
 7     vector<int> v = {9,8,7,6,5,4,3,2,1,0};
 8     
 9     for(auto& val : v){
10         val = val * val;
11     }
12     
13     for(vector<int>::iterator iter = v.begin(); iter != v.end(); ++iter){
14         cout << *iter << " " << endl;
15     }
16     
17     system("pause");
18     return 0;
19 }

(3)if語句

if語句也就是條件語句。其形式為:

1 if(condition)
2     statement
3 
4 
5 if(condition)
6     statement1
7 else
8     statement2

if語句還支持嵌套,所以我們在使用的時候應該十分註意懸進問題。

例;

 1 #include<iostream>
 2 
 3 using namespace std;
 4 
 5 int main(){
 6     int currentVal = 0,val = 0;
 7     
 8     if(cin >> currentVal){
 9         int count = 1;
10         while(cin >> val){
11             if(val == currentVal){
12                 ++count;
13             }
14             else{
15                 cout << currentVal << "出現了" << count << "" << endl;
16                 currentVal = val;
17                 count =1;
18             }
19         }
20     cout << currentVal << "出現了" << count << "" << endl;
21     }
22     
23     system("pause");
24     return 0;
25 }

(4)switch語句

switch語句提供了一條便利的途徑使我們在若幹個固定選項中作出選擇。其語法為:

 1 switch(switch_on)
 2 case x1:
 3     statement1
 4     break;
 5 case x2:
 6     statement2
 7     break;
 8 ...
 9 default:
10     statementn;
11     break;

註意:不要漏寫break,如果漏寫break語句會從判定成功的case語句處順序執行下去。

(5)跳轉語句

  break;continue;goto;return

  break語句負責終止離它最近的while,do while,for或者switch語句,並從這些語句之後的第一條語句開始執行。

  continue語句終止離它最近的循環中當前叠代並立即開始下一次叠代。

  goto語句的作用是無條件跳轉到同一函數的另一條語句,盡量不要再程序中使用該語句,難以修改和難以理解,但是該語句在多層中使用會很有意思(沒有使用過)。

  return語句終止當前正在執行的函數並將控制權返回給調用該函數的地方

<C++學習三>控制流