close

#@#迴圈#@#

        C++提供的forwhiledo while迴圈,可以在需要重複執行某項功能時,根據程式的需求與習慣,加以選擇使用。舉例來說,平常面對輸出1~5時,如果使用cout直接輸出,這樣會很慢,這時就可以使用迴圈。

#@#for迴圈#@#

 

01          //Prog5_1 迴圈

02          #include<iostream>

03          using namespace std;

04          int main(void)

05          {

06            for(int i=1;i<=5;i++)

07              cout<<i<<endl;

08            system(“pause”);

09            return 0;

10          }

For迴圈是使用率最高的迴圈,若是很清楚的知道迴圈要執行的次數時,就可以使用for迴圈,其格式如下:

        for(設定迴圈初值;判斷條件;設定增減量)

        {

                迴圈主體;

        }

【註解】若是在迴圈主體中要處理的敘述只有一個,左右大括號可去除。

(1)   第一次進入for迴圈時,設定迴圈控制變數的起初值。

(2)   根據判斷條件的內容,檢查是否要繼續執行迴圈。當判斷條件為true,繼續執行迴圈主體;當判斷條件為false,則跳出迴圈執行其他敘述。

(3)   執行完迴圈主體後,迴圈控制變數會根據增減量的設定,更改迴圈控制變數的值。

 

#@#迴圈的區域變數#@#

        在迴圈裡宣告的變數稱為區域變數,只要跳出迴圈這個變數便不能在被使用。變數的適用的區域僅含括變數的兩個大括弧之間。

 

01          //Prog5_2 區域變數

02          #include<iostream>

03          using namespace std;

04          int main()

05          {

06            int i=15;

07            for(int i=1;i<=5;i++){

08              cout<<i<<endl;

09            }

10            cout<<i<<endl;

11            system("pause");

12          }

以上這個例子,其中第七行的i:其變數範圍為第六行~第十四行兩個大括號間:而第九行的i:其變數範圍為第九行~第十一行兩個大括號間。

 

#@#while迴圈#@#

當迴圈重複執行的次數很確定時,會使用for迴圈。但是對於有些問題,無法事先知道迴圈需要執行多少次時,就可以考慮while迴圈或do while迴圈。

 

01          //Prog5_3 while 迴圈

02          #include<iostream>

03          using namespace std;

04          int main()

05          {

06          int i=0;

07          while(i<=5){

08            cout<<i<<endl;

09            i++;

10          }

11          system("pause");

12          }

  設定迴圈初值;

 while(判斷條件)

 {

   迴圈主體;

   設定遞增量;

 }

【註解】若是在迴圈主體中要處理的敘述只有一個,左右大括號可去除。

(1)   第一次進入while迴圈前,就必須先設定迴圈控制變數的起初值。

(2)   根據判斷條件的內容,檢查是否要繼續執行迴圈,如果條件判斷值為true,則繼續執行迴圈主體;如果條件判斷值為false,則跳出迴圈執行後續敘述。

(3)   執行完迴圈主體內的敘述後,重新設定控制變數的値,由於while迴圈不會主動改變控制變數的値,所以要有第六行和第八行的敘述。

#@#do while迴圈#

        do while迴圈也是用於迴圈執行次數未知的情況。do while迴圈是「先做在說」,每執行完一次迴圈主體後,再測試判斷條件的真假,因此不管迴圈成立的條件為何,使用do while迴圈時,至少都會執行一次迴圈的主體。

 

01          //Prog5_4 do while 迴圈

02          #include<iostream>

03          using namespace std;

04          int main()

05          {

06            int i=1;

07            do{

08              cout<<i<<endl;

09              i++;

10            }while(i<=5);

11            system("pause");

12          }

 

 設定迴圈初值;

 do

 {

   迴圈主體;

   設定增減量;

 }while(判斷條件)

【註解】若是在迴圈主體中要處理的敘述只有一個,左右大括號可去除。

(1)   進入do while迴圈前,要先設定迴圈的控制變數起始值。

(2)   直接執行迴圈主體,迴圈主體執行完畢,才開始根據判斷條件的內容,檢查是否繼續執行迴圈。若條件式的判斷値為true:繼續執行迴圈主體;如果條件式的判斷値為false:則跳出迴圈,並執行後續敘述。

(3)   執行完迴圈主體內的敘述後,重新設定控制變數的値,由於while迴圈不會主動改變控制變數的値,所以要有第六行和第十行的敘述。 

 

#@#迴圈的跳離#(Prog5_5)

        C++中雖然有跳離敘述,如breakcontinue等敘述,站在結構化程式設計的角度並不鼓勵使用者使用,因為這些跳離敘述會增加除錯及閱讀上的困難。

break 敘述:可以讓程式強迫跳離迴圈。當程式執行到break敘述時,即會離開迴圈,繼續執行迴圈外的下個敘述。

 for(初值設定;判斷條件;設增減量)

 {

   敘述1

   break

 }

 敘述2

continue 敘述:可以強迫程式跳到迴圈的起頭,當程式執行到continue敘述時,即會停止執行剩餘圈主體,而到迴圈的開始處繼續執行。

for(初值設定;判斷條件;設增減量)

{

   敘述1

          continue

         }

01          //Prog5_4 迴圈的跳離

02          #include<iostream>

03          using namespace std;

04          int main()

05          {

06            int a,b;

07            while(cin>>a>>b){

08              if(a==1 && b==2){

09                cout<<"Pass!!"<<endl;

10                break;

11              }

12              else{

13                cout<<"False!!"<<endl;

14                continue;

15              }

16            }

17            system("pause");

18          }

#@#巢狀迴圈#(Prog5_6)

        迴圈的主體又有其他迴圈時,就稱為巢狀迴圈。

 

01          //Prog5_5

02          #include<iostream>

03          using namespace std;

04          int main()

05          {

06            int i,j;

07            for(int i=0;i<5;i++){

08              for(int j=0;j<5;j++){

09                cout<<"# ";

10              }

11              cout<<endl;

12            } 

13            cout<<endl;

14            for(int i=0;i<5;i++)

15              cout<<"# # # # #"<<endl;

16            system("pause");

17          }

arrow
arrow
    全站熱搜

    FlyingDC 發表在 痞客邦 留言(0) 人氣()