2016年11月13日 星期日

do while迴圈

程式範例

#include <stdio.h>
#include <stdlib.h>
int main()
{
      int x = 0;
      do{
            scanf("%d", &x);
      }while(!(x % 2));
      system("pause");
}

程式意義

重複輸入數字,當輸入的數字為奇數時,結束迴圈。

程式解析

do{
//程式內容
}while(判斷式);

當程式讀取到do時(do中譯就是做的意思,可以聯想成編譯器直接執行do while迴圈內之程式碼),會直接執行該迴圈內容一次,執行完迴圈內的內容後,再跳至while並判斷(  )內之判斷式是否成立,成立回傳1,並跳至do執行迴圈內容、若不成立,則回傳0,並跳離迴圈。

程式優化

#include <stdio.h>
#include <stdlib.h>
int main()
{
       int x = 0;
       do{
             scanf("%d", &x);
       }while(!(x & 1));
       system("pause");
}

程式解析

由於取餘數%於電腦運算較耗時(∵此%於電腦中還需做除法、減法等運算),所以我們可改用位元操作"!(x&1)"(對x之第一個位元看看是否為1,若是則結束該迴圈)的方式來達到優化程式的效果。

沒有留言:

張貼留言