高一課程C語言>while迴圈

 



回高一首頁〕〔回上一頁


while 的架構

  while(條件式)      <-----( )內需要填入依邏輯判斷式,邏輯判斷式是由『>、>=、<、<=、==、!=』構成
    {

                <-----{      } 大刮號在C語言中都是用來表示範圍,在此表示當上一行的邏輯判斷式成立時執行的內容
        
//條件式成立時執行的內容

    }


while的執行步驟如下:
 1。檢查條件式是否成立
 不成立時:迴圈結束
 成立時: 
     2。執行迴圈的內容
     3。執行完畢時,跳回第一步驟,再檢查條件式是否成立,
     如果成立則重新執行第二步驟, 不成立則迴圈結束。 


 

 


範例

【例】用while語句求1+2+3+...+100之總和

用傳統流程圖表示演算法,見圖:

#include<stdio.h>

main()

{

   int i,sum=0;

   i=1;

   while(i<=100)

        {

sum=sum+i;

          i++;

         }

   printf("%d\n",sum);

}

【例】統計從鍵盤輸入一行字元的個數。

#include <stdio.h>

main(){

    int n=0;

    printf("input a string:\n");

    while(getchar()!='\n') n++;

    printf("%d",n);

}

    本例程式中的迴圈條件為getchar()!='\n',其意義是, 只要從鍵盤輸入的字元不是ENTER鍵就繼續迴圈。循環體n++完成對輸入字元個數計數。從而程式實現了對輸入一行字元的字元個數計數。

使用while語句應注意以下幾點:

      1)    while語句中的運算式一般是關係表達或邏輯運算式,只要運算式的值為真(0)即可繼續迴圈。

【例】

main(){

    int a=0,n;

    printf("\n input n:    ");

    scanf("%d",&n);

    while (n--)

      printf("%d  ",a++*2);

}

 

本例程式將執行n次迴圈,每執行一次,n值減1。迴圈中,輸出運算式 a++*2 的值。該運算式等效於(a*2a++)

    1)       迴圈內容如包括有一個以上的語句,則必須用{}括起來,組成複合語句。

 


 

基本範例

  • 輸入一正整數N,求1+2+3+4+...+n=?
  • 輸入一正整數N,求1-2+3-4+...+(-)n=?
  • 輸入一正整數N,求1+1/2+1/3+1/4+...+1/n=?
  • 輸入一正整數N,求1-1/2+1/3-1/4+...+(-)1/n=?
  • 計算任意正整數N的階乘值(N!)。(N<20) (N!=N*(N-1)*...*2*1)
  • 輸入一正整數N,列出此數之所有正因數。
  • 輸入一個正整數,判斷此數的因數個數為奇數或偶數。
  • 寫一程式計算一組數字的乘積。你的程式必須能夠連續輸入數個整數(以Enter隔開),當輸入數字為0時,隨即輸出結果,並結束程式。

>>FOR迴圈     

>>do-while迴圈