For, while 重覆迴路都是在重覆迴路執行之前先判斷條件是否成立,因此可能完全沒執行迴路中的程式區段。當實際應用需要至少先執行迴路內程式區段一次以上,再判斷是否繼續重覆,可以使用do/while重覆迴路。do/while 指令對應的流程圖如下圖,在do指令後直接進入迴路,在迴路內執行block內的指令群,完成後才會檢查while()內部的condition。若滿足ture則再回到以do為起頭的迴路,若不滿足false則離開迴路進入後續程式的執行流程。
do/while重覆迴路流程圖
其標準原型如下
do{
block of statements;
}while (condition)
以下範例中,程式不斷接受新鍵入並印出,直到鍵入值為100
範例:顯示輸入的數值
#include "c4mlib.h" //引入ASA Seriesc函式庫
#include "math.h" //引入math,h函式庫
#include "stdlib.h" //引入stdlib函式庫
int main(void)
{
C4M_DEVICE_set(); //執行ASAM128板初始設定
int num;
do
{
scanf("%d",&num);
printf("The number entered is%d \n",num);
}
while (num!=100);
printf("You have stop the program\n");
}
顯示結果
輸入數字後會顯示你所輸入的數字,當到達100時則會停止。