1. 程式人生 > >do-while語句及for語句(初學者)

do-while語句及for語句(初學者)

1、do-while語句的一般形式為:

do

  語句

while(表示式);

這個迴圈與while迴圈的不同在於:它先執行迴圈中的語句,然後再判斷這個表示式是否為真,如果為真則繼續迴圈;如果為假,則中止迴圈。因此do-while語句至少要執行一次迴圈語句。

例:

#include<stdio.h>

void main()
{
    int i,sum=0;
    i=1;
    do 
    {
        sum=sum+i;
        i++;
    }
    while(i<=100);
    printf("%d",sum);
}

區分while語句與do-while語句

#include<stdio.h>

void main()
{
    int i,sum=0;
    scanf("%d",&i);
    while(i<=10)
    {
        sum=sum+i;
        i++;
    }
    printf("%d",sum);
}
#include<stdio.h>

void main()
{
    int i,sum=0;
    scanf("%d",&i);
    do
    {
        sum
=sum+i; i++; } while(i<=10); printf("%d",sum); }

注:一般情況下,用while和do-while語句解決同一問題時,若二者的迴圈體部分是一樣的,它們的結果也一樣。但當while後面的“表示式”一開始為“假(0)”時,兩種迴圈的結果不同。這是因為此時while迴圈的迴圈體不被執行,而do-while迴圈的迴圈體被執行一次。

2、for語句

在C語言中,for語句使用最為靈活,它完全可以取代while語句。它的一般形式為:for(表示式1;表示式2;表示式3)

過程如下:

(1)先求解表示式1;

(2)求解表示式2,若值為真(非0),則執行for語句中指定的內嵌語句,然後執行下面第3步;若值為假(0),則迴圈結束,轉到第5步;

(3)求解表示式3;

(4)轉回上面第二步繼續執行。

(5)迴圈結束,執行for語句下面的一個語句。

理解:for(迴圈變數賦初值;迴圈條件;迴圈變數增量)語句

 

#include<stdio.h>

void main()
{
    int i,sum=0;
    for(i=1;i<=100;i++)
    {
        sum=sum+i;
    }
    printf("%d",sum);
}

 注意:(1)for迴圈中的“表示式1(迴圈變數賦初值)“、”表示式2(迴圈條件)“、”表示式3(迴圈變數增量)“都是選擇項,即可以預設,但”;“不能預設。

(2)省略了”表示式1(迴圈變數賦初值)“,表示不對迴圈控制變數賦初值。

(3)省略了”表示式2(迴圈條件)“,則不做其他處理時便成為死迴圈。

例:for(i=1;;i++)

  {

    sum=sum+i;

  }

(4)省略了”表示式3(迴圈變數增量)“,則不對迴圈控制變數進行操作,這時可在語句體中加入修改迴圈控制變數的語句。

例:for(i=1;i<=100;)

  {

    sum=sum+i;

    i++;

  }

(5)3個表示式都可以省略。

例:for(;;)語句相當於while(1)語句(死迴圈)

(6)表示式1可以是設定迴圈變數的初值的賦值表示式額,也可以是其他表示式。

例:for(sum=0;i<=100;i++)

    sum=sum+i;

(7)表示式1和表示式3可以是一個簡單表示式也可以是逗號表示式。

例:for(sum=0,i=1;i<=100;i++)

    sum=sum+i;

  for(i=0,j=100;i<=100;i++,j--) 

    k=i+j;

(8)表示式2一般是關係表示式或邏輯表示式,但也可以是數值表示式或字元表示式,只要其值非0,就執行迴圈體。

例:for(;(c=getchar())!='\n';)

  {

    printf("%c",c);

  }