C語言循環控制語句

C語言循環控制語句

C語言循環控制語句是一個基於C語言的編程語句,該語句主要有while循環語句、do-while循環語句和for循環語句來實現循環結構。

基本信息

在C語言程式中,一共有三種程式結構:順序結構、選擇結構(分支結構)、循環結構;順序結構,從頭到尾一句接著一句的執行下來,直到執行完最後一句;選擇結構,到某個節點後,會根據一次判斷的結果來決定之後向哪一個分支方向執行; 循環結構,循環結構有一個循環體,循環體裡是一段代碼。對於循環結構來說,關鍵在於根據判斷的結果,來決定循環體執行多少次。C語言循環控制語句是一個基於C語言的編程語句,該語句主要有while循環語句、do-while循環語句和for循環語句來實現循環結構。

循環語句

一般形式如下:

while(表達式)

語句;

while語句 while語句

其中執行過程如下:

(1)計算while後面括弧里表達式的值,若其結果非0,則轉入(2),否則轉(3)

(2)執行循環體,轉(1)

(3)退出循環,執行循環體下面的語句。

由於是先執行判斷後執行循環體,所以循環體可能一次都不執行。

循環體可以為空語句“;”。

do-while語句

一般形式如下:

do

語句;

while(表達式);

do...while語句 do...while語句

(1)執行循環體,轉(2)

(2)計算while後面括弧里表達式的值,若其結果非0,則轉入(1),否則轉(3)

(3)退出循環,執行循環體下面的語句。

注意:do……while語句最後的分號(;)不可少,否則提示出錯。循環體至少執行一次。

for語句

for語句是循環控制結構中使用最廣泛的一種循環控制語句,特別適合已知循環次數的情況。

一般形式如下:

for ( [表達式 1]; [表達式 2 ]; [表達式3] )

語句

其中:

for語句 for語句

表達式1:一般為賦值表達式,給控制變數賦初值;

表達式2:關係表達式或邏輯表達式,循環控制條件;

表達式3:一般為賦值表達式,給控制變數增量或減量;

語句:循環體,當有多條語句時,必須使用複合語句。

其執行過程如下:首先計算表達式1,然後計算表達式 2。若表達式2為真,則執行循環體;否則,退出 for循環,執行for循環後的語句。如果執行了循環體,則循環體每執行一次,都計算表達式3,然後重新計算表達式2,依此循環,直至表達式 2的值為假,退出循環。

for語句的三個表達式都是可以省略的,但分號“;”絕對不能省略。for語句有以下幾種格式:

(1)for(; ;) 語句;

(2)for(;表達式2;表達式3 ) 語句;

(3)for(表達式1;表達式2;) 語句;

(4)for(i=1,j = n; i < j; i ++,j - - ) 語句;

三種語句比較

同一個問題,往往既可以用 while語句解決,也可以用 do-while或者for語句來解決,但在實際套用中,應根據具體情況來選用不同的循環語句。選用的一般原則是:

(1) 如果循環次數在執行循環體之前就已確定,一般用 for語句。如果循環次數是由循環體的執行情況確定的,一般用 while語句或者do- while語句。

(2) 當循環體至少執行一次時,用 do-while語句,反之,如果循環體可能一次也不執行,則選用while語句。

C++/C循環語句中,for語句使用頻率最高,while語句其次,do語句很少用。

三種循環語句for、while、do-while可以互相嵌套自由組合。但要注意的是,各循環必須完整,相互之間絕不允許交叉。

其他循環語句

多重循環結構

在多重循環中,如果有可能,應當將最長的循環放在最內層,最短的循環放在最外層,以減少CPU跨越循環層的次數。

一個循環體內又包含另一個完整的循環結構

三種循環可互相嵌套,層數不限

外層循環可包含兩個以上內循環,但不能相互交叉

c循環舉例

這裡使用c語言中的for循環。添加了九九乘法表查詢、每天存錢問題、猴子吃桃問題、百錢買百雞。

#include <stdio.h>

void main()

{

float x,y,z,a,b,c,d,i,n,sum;int m;char yn;

system ("graftable 936");

yn="y";

while(yn=="y" )

{

clrscr ();

printf(" 歡迎使用 \n");

printf("請按提示操作,謝謝!\n");

printf("九九乘法表查詢請按1\n");

printf("每天存錢問題請按2\n");

printf("猴子吃桃問題請按3\n");

printf("一分數序列課本請按4\n");

printf("百錢買百雞請按5\n");

m=getch();

switch(m)

{case '1':

{

for (a=1;a<=9;a++)

{for (b=1;b<=a;b++)

printf("%.0f*%.0f=%2.0f\t",a,b,a*b);

printf("\n");

}

break;}

case '2':

{

a=1,sum=0;

for(i=1;i<31;i++)

{sum=sum+a;

printf("第%2.0f天收益%20.0f分錢\t",i,sum);

a=2*a;

}

break;}

case '3':

{

b=1;

for(i=1;i<10;i++)

b=2*(b+1);

printf("猴子吃桃問題:");

printf("第一天摘桃子的個數為%.0f個\n",b);

break;}

case '4':

{ a=2,b=1, sum=0;

for(i=1;i<=20;i++)

{ n=(1.0*a)/b; c=a; a=a+b; b=c; sum=sum+n; }

printf("2/1,3/2,5/3...最後結果%f\n",sum);

break;}

case '5':

{

for(a=1;a<=20;a++)

for(b=1;b<=33;b++)

for(c=3;c<=99;c=c+3)

if((5*a+3*b+c/3==100)&&(a+b+c==100))

printf("公雞=%.0f,母雞=%.0f,小雞=%.0f\n",a,b,c);

break;}

}

fflush(stdin);

printf("請選擇繼續y或者離開n\n");

yn=getch();

}

}

相關詞條

熱門詞條

聯絡我們