<C++學習三>控制流
控制流: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++學習三>控制流