while loop

  1. 流程圖

    \begin{tikzpicture}[node distance=1.5cm,auto]\setlength \baselineskip{1ex}
\node [input,name=input] {};
......
  2. 語法: condition 判斷條件是否成立,成立則繼續執行迴圈。
    while(condition)
    {
       statement(s);
    }
    
  3. 範例:輸入一數字,從 1 累加到總數超過此數字。
    [dywang@deyu zzz]$ vim while1.c 
    [dywang@deyu zzz]$ cat while1.c 
    #include <stdio.h>
    
    int main() {
    	int i=1, a, sum=0;
    
    	printf("Enter an integer: ");
    	scanf("%d", &a);
    
    	while ( sum < a ) {
    		printf("%d+", i++ );
    		sum += i;
    	}
    	printf("%d=%d\n", i,sum );
    }
    
  4. 編譯成功
    [dywang@deyu zzz]$ gcc -o while1 while1.c
    
  5. 執行結果一:輸入正整數時,輸出正確。
    [dywang@deyu zzz]$ ./while1
    Enter an integer: 23
    1+2+3+4+5+6+7=27
    [dywang@deyu zzz]$ ./while1
    Enter an integer: 76
    1+2+3+4+5+6+7+8+9+10+11+12=77
    Enter an integer: 10
    1+2+3+4+5+6+7+8+9+10=55
    
  6. 執行結果二:輸入 0 或負數時,輸出變成 1=0?
    [dywang@deyu zzz]$ ./while1
    Enter an integer: -3
    1=0
    [dywang@deyu zzz]$ ./while1
    Enter an integer: 0
    1=0