1. 程式人生 > >程式設計總結2(12.9)

程式設計總結2(12.9)

第六章迴圈控制結構

一、知識

1.條件控制的迴圈(特別地:標誌變數控制的迴圈)

   計數控制的迴圈

2.用於結構化程式設計的三種基本結構

   ①順序結構 ②選擇結構 ③迴圈結構

   其中迴圈結構分為當型迴圈結構和直到型迴圈結構

3.for語句:

   更適合於計數控制的迴圈

    *需要注意兩個分隔符";"不可缺少

      for( ; ; )後加上分號,起延時的作用

    逗號表示式:

迴圈變數可以超過一個eg. for(i=1,j=n;i=j;i++,j- -)      

4.while語句:

   更適合於迴圈次數未知、條件控制的迴圈

    *注意while( )後加上分號可導致死迴圈

   while中的計數變數控制要注意是i++還是++i;

   特別注意需要用while解決的問題很多需要反著找(逆向思維)

5.do-while語句:直到型迴圈

   在迴圈底部進行迴圈條件測試,迴圈至少執行一次。(這說明在第一次判斷為假的情況下do-while與while不等價)

   適合於迴圈次數未知、條件控制的迴圈

6.區域性變數與複合語句

    區域性變數在迴圈語句中定義的變數,只能在迴圈語句中使用,一般在迴圈內賦值或緊靠迴圈賦值

    迴圈中常用複合語句來執行多個工作

7.一些新學的函式:

   setw():cout<<setw(x)<<a<<endl;在cpp的<iomanip>

   //其中的setw(x)的作用是控制輸出的a的寬度為x//

  puts

():就是printf(“...\n”) <studio.h>

  floor()/ceil():向下取整和向上取整<math.h>

  exit(code):結束程式:當code的值為0時,表示程式正常退出;當code的值為非0值時,表示程式出現某種錯誤後退出/在cpp的<cstdlib>

  rand( ):偽隨機數生成(具體為啥是假的我現在都沒搞懂233),產生[0,32767]之間的隨機數 在cpp的<csdlib>

     產生[0,b-1]之間的隨機數 magic=rand( )%b;

     產生[a,a+b-1]之間的隨機數 magic=rand( )%b+a;

    真正隨機需要設個種子需要加一條srand(a);a即是seed,任何數都可以

8.多組測試資料

      有效輸入重複,無效輸入退出

      while(scanf("%d",&x)!=EOF)

      while(scanf("%d",&x)!=1)//注意這裡是不等於輸入的變數個數//

      while(cin>>x)

     上述的三條語句中內涵了輸入語句,不需要在迴圈體中再寫入

9.流程的轉移控制

     ①goto語句:無條件轉移到標號(label)所標識的語句處去執行

      Label命名同變數名2 goto一般和if聯用3沒有特殊情況禁用

     ②break語句:用於退出switch或一層迴圈結構

     (連跳可用goto)

     ③continue語句:用於結束本次迴圈、繼續執行下一次循

10.標誌變數控制的迴圈

eg.

bool find=0;

for(i=1;!find;i++)

{

  if(...{...;find=1;}//找到了//

}

二、應用

累加累乘問題/找最大最小

篩選同類/特殊資料並進行一定操作(eg.一個整數含3的個數

迴圈結構是解決遞迴,遞推問題的主要手段之一(特別是需要暴力的時候)