C語言for的多重迴圈C語言for的多重迴圈是怎麼一回事啊能給小弟詳細講解以下嗎

2021-03-07 21:50:32 字數 3447 閱讀 5172

1樓:匿名使用者

舉例子有點難,要不直接講一下。

首先,定義迴圈,將i的起始值設為1,迴圈條件為i<10(也就是i的尾值為9),然後在內部定義巢狀迴圈,將j的起始值設為1,迴圈條件為j<=i(這是全迴圈裡最難理解的,這個巢狀迴圈尾值是i當時的值,比如當時i的值為8,那麼j將會從1執行到8),所以執行順序可以這樣理解:1,確定i值;2,在裡面重複執行巢狀迴圈,確定j值,重複執行直到j大於i(一大於就不執行了);3.i值加1,繼續執行迴圈。

這個程式應該是用來列印乘法口訣表的,可以了解一下。

2樓:餜敟閱滃皬櫬

for(表示式1;表示式2;表達3)

語句:表示式1 通常用來給迴圈變數賦初值,一般是賦值表示式。也允許在for語句外給迴圈變數賦初值,此時可以省略該表示式。

表示式2 通常是迴圈條件,一般為關係表示式或邏輯表示式。

表示式3 通常可用來修改迴圈變數的值,一般是賦值語句。

這三個表示式都可以是逗號表示式, 即每個表示式都可由多個表示式組成。三個表示式都是任選項,都可以省略。

一般形式中的「語句」即為迴圈體語句。for語句的語義是:

2.再計算表示式2的值,若值為真(非0)則執行迴圈體一次, 否則跳出迴圈。

3.然後再計算表示式3的值,轉回第2步重複執行。在整個for迴圈過程中,表示式1只計算一次,表示式2和表示式,3則可能計算多次。

迴圈體可能多次執行,也可能一次都不執行。for 語句的執行過程如圖所示。

void main()

用for語句計算s=1+2+3+...+99+100

int n,s=0;

for(n=1;n<=100;n++)

s=s+n;

printf("s=%d\n",s);

本例for語句中的表示式3為n++,實際上也是一種賦值語句,相當於n=n+1,以改變迴圈變數的值。

void main()

用for語句修改例題。從0開始,輸出n個連續的偶數。

int a=0,n;

printf("\n input n: ");

scanf("%d",&n);

for(;n>0;a++,n--)

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

3樓:熟悉的陌生人

這個就是在列印乘法口訣表

c語言 for的多重迴圈是怎麼一回事啊 能給小弟詳細講解以下嗎?

4樓:匿名使用者

for(表示式1;表示式2;表達3)

語句:表示式1 通常用來給迴圈變數賦初值,一般是賦值表示式。也允許在for語句外給迴圈變數賦初值,此時可以省略該表示式。

表示式2 通常是迴圈條件,一般為關係表示式或邏輯表示式。

表示式3 通常可用來修改迴圈變數的值,一般是賦值語句。

這三個表示式都可以是逗號表示式, 即每個表示式都可由多個表示式組成。三個表示式都是任選項,都可以省略。

一般形式中的「語句」即為迴圈體語句。for語句的語義是:

1.首先計算表示式1的值。

2.再計算表示式2的值,若值為真(非0)則執行迴圈體一次, 否則跳出迴圈。

3.然後再計算表示式3的值,轉回第2步重複執行。在整個for迴圈過程中,表示式1只計算一次,表示式2和表示式,3則可能計算多次。

迴圈體可能多次執行,也可能一次都不執行。for 語句的執行過程如圖所示。

void main()

用for語句計算s=1+2+3+...+99+100

int n,s=0;

for(n=1;n<=100;n++)

s=s+n;

printf("s=%d\n",s);

本例for語句中的表示式3為n++,實際上也是一種賦值語句,相當於n=n+1,以改變迴圈變數的值。

void main()

用for語句修改例題。從0開始,輸出n個連續的偶數。

int a=0,n;

printf("\n input n: ");

scanf("%d",&n);

for(;n>0;a++,n--)

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

本例的for語句中,表示式1已省去,迴圈變數的初值在for語句之前由scanf語句取得,表示式3是乙個逗號表示式,由a++,n-- 兩個表示式組成。每迴圈一次a自增1,n自減1。a的變化使輸出的偶數遞增,n的變化控制循次數。

在使用for語句中要注意以下幾點

1.for語句中的各表示式都可省略,但分號間隔符不能少。如:for(;表示式;表示式)省去了表示式1。for(表示式;;表示式)省去了表示式2。

for(表示式;表示式;)省去了表示式3。for(;;)省去了全部表示式。

2.在迴圈變數已賦初值時,可省去表示式1,如例3.27即屬於這種情形。如省去表示式2或表示式3則將造成無限迴圈, 這時應在迴圈體內設法結束迴圈。例題即屬於此情況。

void main()

} int a=0,n;

printf("\n input n: ");

scanf("%d",&n);

for(;n>0;)

本例中省略了表示式1和表示式3,由迴圈體內的n--語句進行迴圈變數n的遞減,以控制迴圈次數。

void main()

}int a=0,n;

printf("\n input n: ");

scanf("%d",&n);

for(;;)

本例中for語句的表示式全部省去。由迴圈體中的語句實現迴圈變數的遞減和迴圈條件的判斷。當n值為0時,由break語句中止迴圈,轉去執行for以後的程式。

在此情況下,for語句已等效於while( 1)語句。如在迴圈體中沒有相應的控制手段,則造成死迴圈。

3.迴圈體可以是空語句。

#include"stdio.h"

void main()

本例中,省去了for語句的表示式1,表示式3也不是用來修改迴圈變數,而是用作輸入字元的計數。這樣, 就把本應在迴圈體中完成的計數放在表示式中完成了。因此迴圈體是空語句。

應注意的是,空語句後的分號不可少,如缺少此分號,則把後面的printf 語句當成迴圈體來執行。反過來說,如迴圈體不為空語句時, 決不能在表示式的括號後加分號, 這樣又會認為迴圈體是空語句而不能反覆執行。這些都是程式設計中常見的錯誤,要十分注意。

4.for語句也可與while,do-while語句相互巢狀,構成多重迴圈。以下形成都合法的巢狀。

(1)for()…}

(2)do

…}while();

(3)while()…}

(4)for()

}void main()

printf("\n");}}

5樓:誒戈兒

巢狀嘛,從最外面的迴圈開始第一次迴圈,遇到下級for迴圈的時候,迴圈這級迴圈一次,如果該迴圈內不再有迴圈for,那麼就要把這級迴圈的次數全不迴圈完畢後跳到外迴圈中進行第二次迴圈,再執行內部for迴圈,依次迴圈完畢為止

c語言for迴圈再指,C語言FOR迴圈再指ELSE

31 這裡if後面 只有b 1 由於其後為 所以c 2已經不是if之內的了。這時再有乙個else 是無法配對的。內 於是編譯出容錯。選d 32 對於單純的外層迴圈。不包括內層與j相關的。每次迴圈x自加兩次,分別在內層迴圈的前面和後面。對於內層迴圈,每次j 0 1 2 3 當j為奇數時,及j 1 3時...

c語言程式設計(遊戲要迴圈),C語言程式設計(遊戲要迴圈)

include stdio.h main b 1 rand 20 if a b printf 猜對了,您真的太聰明了 n else if a b printf 對不起,您猜的數字 d小了 n a else printf 對不起,您猜的數字 d大了 n a printf 是否願意再玩一次 y或n a ...

關於C語言的一道題迴圈語句,C語言迴圈語句裡的一道例題

a.for x i 因為沒有判斷語句,所以就沒有真假判斷,程式就一直迴圈下去咯。b.while 1 因為括弧裡面是1,在邏輯上說就是真,所以迴圈也會繼續。c.for i 10 i sum i 和a一樣,沒有判斷語句。答案是d就不用說了吧。a c缺少終止條件語句,當然死迴圈 b,while 1 1表示...