C語言-循環(huán)結(jié)構(gòu)

1 概述

循環(huán)結(jié)構(gòu)是程序中一種很重要的結(jié)構(gòu).其結(jié)構(gòu)的特點是,再給定條件成立時,反復(fù)執(zhí)行某程序,知道條件不成立為止.C語言中的循環(huán)結(jié)構(gòu)有多種類型,如下:

  1. 用while語句;
  2. 用do-while語句;
  3. 用for語句.

2 while語句

while語句的一般形式:
while(表達式)
{
語句;
}
表達式為while的循環(huán)條件,語句為循環(huán)體.也就是說,當(dāng)滿足表達式的時候,進入循環(huán)體執(zhí)行語句.
練習(xí)1:用while語句求1~100所有整數(shù)之和;

#include<stdio.h>
int main (int argc, char *argv)
{
int sum=0;
int i=1;
while (i<=100)
{
sum=sum+1;
i=i+1;
}
printf("sum=%d\n",sum);
return 0;
}

練習(xí)2:用while循環(huán)語句求[m,n]之間所有整數(shù)之和;

#include <stdio.h>
int main(int argc,char *argv)
{
int m,n,i,sum=0;  //變量定義

printf("請輸入兩個整數(shù)m和n: \n"); //鍵盤輸入變量值
scanf ("%d%d",&m,&n);

if (m<n)  // 計算公式部分: 1.判斷m是否小于n;
{                                        // 2. 進行循環(huán)計算;
while(i<=n)
{
sum=sum+i;
i=i+1;
}
}
else
printf ("error\n");
printf ("[%d,%d]之間的整數(shù)和為: \n",m,n,sum);
return 0;
}

3 do...while循環(huán)語句

do...while循環(huán)語句的一般形式如下:
do
{
循環(huán)語句;
}
while(表達式);
do...while循環(huán)語句和while循環(huán)語句有一定的區(qū)別:do...while語句實現(xiàn)執(zhí)行循環(huán)語句,然后再判斷表達式是否為真,若為真則繼續(xù)循環(huán),否則跳出循環(huán).因此,do...while循環(huán)語句至少要執(zhí)行一次循環(huán)語句.
練習(xí)1:用do...while循環(huán)語句,求1~100之間所有整數(shù)之和.

#include<stdio.h>
int main()
{
int i=0,sum=0;
do
{
sum=sum+i;
i++;
}
while(i<=100);
printf ("1~100之間所有整數(shù)之和為: \n",sum);
return 0;
}

4 for循環(huán)語句

f在C語言中,for循環(huán)語句的使用是最靈活的,它是完全可以取代while和do...while循環(huán)語句的.for循環(huán)語句的一般形式為:
for(表達式1;表達式2;表達式3)
{
循環(huán)語句;
}
其中,表達式1表示循環(huán)變量賦初始值;表達式2表示循環(huán)條件;表達式3表示循環(huán)變量的增量).

for循環(huán)語句的執(zhí)行過程:

  1. 先求解表達式1;
  2. 求解表達式2,若條件為真(非0)時,則執(zhí)行指定的循環(huán)語句,反之則跳出循環(huán),執(zhí)行循環(huán)后的語句;
  3. 求解表達式3;
  4. 轉(zhuǎn)到第二步繼續(xù)執(zhí)行;
  5. 循環(huán)結(jié)束,執(zhí)行for循環(huán)語句后面的語句.

練習(xí)1:用for循環(huán)語句,求1~100之間所有整數(shù)之和;

#include<stdio.h>
int main()
{
int i,main=0;
for (i=1;i<=100;i++)
{
sum=sum+i;
}
printf ("1~100之間所有整數(shù)之和為:%d\n",sum);
return 0;
}

注意:

  1. for 循環(huán)中的"表達式1","表達式2","表達式3"都是可以選擇的,但是它們中間的";"使不能缺少的;
  2. 表達式1可以設(shè)置循環(huán)變量的初值的賦值表達式,也可以是其他表達式;
  3. 表達式1和表達式3可以是一個簡單的表達式也可以是用逗號表達式.如:
    for (i=0,j=100;i<=100;i++,j--)
    {
    k=i+j;
    }
  4. 表達式2一般是關(guān)系表達式或者邏輯表達式,但也可是數(shù)值表達式或者字符表達式,只要其值為非零,就能執(zhí)行循環(huán)體.如:
  1. for(i=0;(c=getchar()) != '\n';i += c)
  2. for(;(c=getchar()) !='\n';)
    printf ("%c",c);

5 課外補充

break和continue的區(qū)別

break:在循環(huán)中遇見break,則直跳出循環(huán);
continue:在循環(huán)中遇見continue時,跳出這一次循環(huán),進入下一次循環(huán).

break和continue的執(zhí)行形式如下:

while(表達式1)
{
if (表達式2)
break; //跳出循環(huán),執(zhí)行循環(huán)后的語句;
....
}

while(表達式1)
{
if (表達式2)
continue; //跳出這一次循環(huán),執(zhí)行下一次循環(huán))
...
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容