6.5 用for 語(yǔ)句實(shí)現(xiàn)循環(huán)
牢記:
1、for 語(yǔ)句的一般形式:
- for(表達(dá)式1,表達(dá)式2,表達(dá)式3)語(yǔ)句
- for(循環(huán)變量賦初始值;循環(huán)條件;循環(huán)變量增值)語(yǔ)句
-
for(i = 1; i <= 100; i++) sum=sum+i;
注:
① 上部分是語(yǔ)句形式,下部分是每一表達(dá)式對(duì)應(yīng)的內(nèi)容含義
② 括號(hào)以及括號(hào)中的分號(hào)要用英文半角
③ 3個(gè)表達(dá)式按從左往右順序執(zhí)行,如果表達(dá)式 2 判斷是假(值為 0),則不執(zhí)行表達(dá)式 3,程序結(jié)束循環(huán),執(zhí)行 for 后面的語(yǔ)句。
④ 表達(dá)式 1 僅求解一次
附上for循環(huán)語(yǔ)句流程圖:

for循環(huán)語(yǔ)句流程圖.jpg
又注:
從流程圖中可直觀地看出,表達(dá)式2求值只有兩種結(jié)果:①非0(真)② 0 (假)
若表達(dá)式2為假,直接跳出循環(huán)。
例題:for循環(huán)求和
#include <stdio.h>
void main()
{
int i = 1, sum=0;
for(i = 1;i<=100; i++)sum=sum+i; //語(yǔ)句只有一句,不需要用花括號(hào)括起來(lái)
printf("%d\n",sum);
}
上述程序的變式:
掌握核心問(wèn)題:表達(dá)式1,2,3均可省略,但分號(hào)必須保留
仍然以為例:
- 省略表達(dá)式 1 后的解決方法,在程序開(kāi)頭先定義好變量。
#include <stdio.h>
void main()
{
int i = 1,sum=0;
for(;i<=100;i++)sum=sum+i;
printf("%d\n",sum);
}
- 如果表達(dá)式 2 空缺,程序會(huì)判定為真,一直循環(huán)下去。
#include <stdio.h>
void main()
{
int i , sum=0;
for( i = 1;;i++)sum =sum+i; //表達(dá)式2永遠(yuǎn)為真,程序一直循環(huán)
printf("%d\n",sum);
}
- 表達(dá)式3空缺,可以在循環(huán)體中添加循環(huán)結(jié)束的條件。
#include <stdio.h>
void main()
{
int i , sum = 0;
for( i = 1;i<=100;)
{
sum=sum+i;
i++;
}
printf("%d\n",sum);
}
總結(jié):
- 無(wú)論哪種形式,i , sum 這些變量都要定義好,設(shè)好初始值。
- 牢記表達(dá)式2是判斷條件,1,3表達(dá)式的位置還可以加入與循環(huán)無(wú)關(guān)的表達(dá)式,不影響循環(huán)的正常進(jìn)行。
- 表達(dá)式可以是關(guān)系表達(dá)式(i<=100),也可以是邏輯表達(dá)式(a<b&&x<y),再次強(qiáng)調(diào):只要表達(dá)式 2 的值非0,循環(huán)體就會(huì)執(zhí)行。
(附注:&& 表示 與 ,即同時(shí)滿足非0/真,表達(dá)式的值才為真)
另外,還有for 循環(huán)的一些特殊應(yīng)用:

for循環(huán)語(yǔ)句的特殊應(yīng)用01.jpg

for循環(huán)語(yǔ)句的特殊應(yīng)用02.jpg
(備注:這個(gè)題目理解還不夠透徹,以后可以回頭看)