for巢狀迴圈格式,c語言中for for 巢狀語句

2023-01-02 12:20:41 字數 5932 閱讀 4831

1樓:匿名使用者

1全部for 迴圈的格式為:

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

因此巢狀的時候要明白 怎樣才是巢狀,如下所示:

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

}//你所謂的第二個for後邊用不用加分號,不知道你想要做什麼;規範的 標準的巢狀如上所示

如果你直接不加{}而是直接向你上邊那樣

for()

for(表示式4;表示式5;表示式6) ; 這裡直接在for迴圈後邊新增一個分號 就表示 當條件表示式5成立的時候只去執行表示式6,然後進入下一次迴圈,知道表示式5不成立退出迴圈

如果不加分號,那麼這個內層迴圈控制的語句 就會是最近一個新增了分號的這條語句,如下:

for()

for(表示式4;表示式5;表示式6)

語句1;

至於你上邊提到的,那是語法問題,c語言必須是以分號 或者 語句塊標識{} 作為一條語句 或者一段語句塊的結束標誌

2樓:

參考**如下:

#include"stdio.h"

main()

}j要是從0開始做5次迴圈就可以了。

3樓:小安無敵

例如一個簡單巢狀:

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

for(j=0;j<10;j++)

printf("%d",a[i][j]);

對於第一個for,後面的兩句都是它的迴圈體,printf後面的 ;代表結束

對於第二個for,printf是它的迴圈體for()括號後面是沒有分號的,不管是雙重巢狀還是三重巢狀,它的分號只是在迴圈體裡

4樓:

for 後面只跟大括號,用;都是錯的

5樓:匿名使用者

什麼語言的問題說清楚 了

c語言中for for 巢狀語句

6樓:小小小倉

for(i = 3; i >=1; i --)這樣就清楚很多了,i=3,j=1 printf: 4i=3 j=2 printf: 5

i=2 j=1 printf: 3

i=2 j=2 printf: 4

i=1 j=1 printf: 2

i=1 j=2 printf: 3

for(i=3;i>=1;i--)

這是兩個for迴圈for(i=3;i>=1;i--)是外層迴圈,for (j=1;j<=2;j++)是內層迴圈,在內層迴圈中for (j=1;j<=2;j++) 做的事情就是先給j初始化為1,然後判斷j是否<=2,如果滿足條件,則執行

printf("%d",i+j); 然後執行j++,然後再判斷此時j是否<=2,如果滿足就執行 printf("%d",i+j); 否則就退出迴圈,一直這樣迴圈下去,但是記得,for (j=1;j<=2;j++)中的j=1,只在進入迴圈時執行一次,以後的迴圈過程不會執行它。當內層迴圈執行完退出迴圈時接著執行下面的語句 printf("\n");然後你把內層迴圈看成是一段語句,然後按照內層迴圈的分析方法去看外層迴圈就可以了。

7樓:匿名使用者

你的程式有兩層迴圈,對於每一個i的值(3,2,1),內層都會執行兩次迴圈。

i=3的時候:

j=1時,列印4(3+1);j=2時,列印3(3+2);再輸出一個換行

後面的類推

8樓:匿名使用者

i==3{

j==1 out: 3+1=4

j==2 out:3+2=5

}i==2……

j**a中的for迴圈巢狀語句怎麼執行啊 比如巢狀4個 ?

9樓:專治八阿哥的孟老師

就一層一層執行唄。

這個最好是debug一下自己看

但是通常專案開發裡面都儘量保持在三個以下,不然就說明你的邏輯設計的不合理

看你設定的條件是迴圈幾次唄。

我們就用for1,for2區分一下

for1(int i=0;i<5;i++)

這裡for2執行的時候迴圈體執行5次,但是for1每次執行的時候都會讓for2再執行一次,也就是說跳出for1的時候迴圈體一共執行了5x5=25次

}其實看簡單點,for2是for1的迴圈體,for2要執行5次,for2每執行一次,她的迴圈體就要執行5次

你只要明白一個for的迴圈體是怎麼運轉的就可以了,巢狀語句沒什麼特殊的,只不過它的迴圈體又是個for而已。

10樓:名字不好起熊

一般for迴圈是雙重迴圈,先執行第一個迴圈,如果為true的話,就進入第二層迴圈,如果第二層迴圈為true的話,就執行第二層迴圈中的**,知道迴圈條件為false,跳出內迴圈,執行外迴圈,和之前的執行流程是一樣的,最好有具體的例子,比較直觀。

11樓:匿名使用者

先從上到下執行,到最內層後,從內到外執行。

舉個例子:

for(int i=0;i<10;i++) 第一層

for(int j=0;j<11;j++) 第二層

for(int k=0;k<12;k++) 第三層

for(int m=0;m<13;m++) 第四層

a++;

執行語句就只有一句a++,然後我們來看執行順序:

先從上到下執行for迴圈,先執行第一層,i=0滿足條件,進去執行他的方法體,他的方法體就是第二層;第二層一看也滿足,繼而執行第三層;第三層也滿足,執行第四層。現在i,j,k值都為0,m是之後一層迴圈,先把m的這層全部滿足後跳出迴圈執行第三層,k=1,之後又進入第四層,後面都是這個順序。一層條件滿足後調到上一層執行。

12樓:

要看你的**怎麼寫啊.就把那幾個相乘,不知道你問的是不是這個意思.

13樓:匿名使用者

for(int i =0;i<?;i++)(for(int ij =0;j<?;i++)(for(int k =0;k<?

;i++)(for(int m =0;m<?;i++)())))?是要迴圈的次數

for迴圈語句巢狀的問題。

14樓:匿名使用者

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

for(j=0;j<10;j++);

請問for(i=0;i<10;i++)後面有沒有;

沒有的話i讀取10次,j讀取100次 ;

有的話則是i讀取10次,j讀取10次 。

15樓:

這是一個雙迴圈

也就是 i 迴圈10次 即 i 讀取10次

然後 每一次的 i 迴圈內 j都要迴圈10次 也就是說 j總共要讀取100次

16樓:_無倫會

i讀取10次,j讀取100次

while()語句下能巢狀for()迴圈嗎?

17樓:創作者

可以巢狀for迴圈,兩種語法沒有直接關係。

舉個例子,while查詢資料表中資料行,for查詢資料列,把正給資料庫單元格文字串聯成一個文字資訊:

string str="";

int i=0;

while(i

樓主的寫法,因為迴圈體重複將會陷入死迴圈,並不是因為語法本身帶來的。

18樓:匿名使用者

寫法是對的,但是你的group[i]裡的四個值應該是一樣的。因為revdata(retdata)沒有變。

19樓:來賺錢啊

while 裡面當然可以巢狀for()迴圈這個程式應該是一個死迴圈 :while(1)始終為真 沒有使while停止迴圈的條件 在最後加一個break;

group[i] = revdata(retdata) 掉了一個「;」

group[i]是4個值

20樓:無情一匕

錯誤的 陷入死迴圈了

group[i] 能得到四個值

while(1)

21樓:流星劍

對的,沒有問題,可以巢狀。

22樓:江湖三腳貓

while(1)

23樓:匿名使用者

少了個分號,其他沒問題。

可以巢狀。

24樓:匿名使用者

寫法是對的~~但是可能不是你想要的效果,

25樓:匿名使用者

當然可以。

group[0]~group[3]都被賦了值。

j**a中的for迴圈巢狀語句怎麼執行?

26樓:胡說八道小鬼

控制語句——for;語句的巢狀應用;累加求和,計數器;迴圈巢狀。

一、語句的巢狀應用

語句巢狀形式。其實就是語句中還有語句。形式多種多樣,沒有固定的格式和套路。

1、列印偶數

for(int x=1;x<=10;x++)

{  if(x%2==1)

continue;

system.out.prinln(「x=」+x);

二、累加求和,計數器

1、獲取1~10的和,並列印。

思路://1,定義變數用於儲存不斷變化的和。

int sum = 0;

//2,定義變數,記錄住不斷變化的被加的數。

int x = 1;

//3,定義迴圈,重複加法的過程。

用while來體現

while(x<=10)

sum = sum + x;

x++;

system.out.println("sum="+sum);

迴圈注意:

一定要明確哪些語句需要參與迴圈,哪些不需要

2、1~100之間 7的倍數的個數。並列印。

思路:1、先對1~100進行迴圈(遍歷)通過迴圈的形式。

2、在遍歷的過程中,定義條件。只對7的倍數進行操作。

3、因為7的倍數不確定,只要符合條件,就通過一個變數來記錄住這個變化的次數。

步驟:1、定義迴圈語句,選擇for語句。

2、在迴圈中定義判斷。只要是7的倍數即可。使用if語句。條件:7的倍數 x%7==0;

3、定義變數,該變數隨著7的倍數的出現而自增。

三、迴圈巢狀。

1、列印一個長方形。

對於列印長方形總結:外迴圈控制的行數。內迴圈控制的是每一行的列數。也就是一行中元素的個數。

3個for迴圈巢狀使用流程

27樓:

public static void main(string args)

for(int xing=1;xing<=i;xing++)//4

system.out.println();//6

}for(int j=1;j<=5;j+=2) //7

system.out.println();//12

}} //首先進入1迴圈, i = 1,  執行 2 迴圈  語句3 迴圈7次輸出7個空格  然後執行迴圈4   語句5執行1次 輸出1個*;

//然後執行語句6  換行.  第一次1迴圈結束  i=3 再次執行,  直到最後一次 i = 7;總共迴圈4 次 輸出的*每次增加2

//1迴圈結束後進入第一次7迴圈   8 和10 迴圈是7迴圈的內迴圈.  輸出的*每次減少2

//程式中  迴圈1 和 7是並列的  2 和 4 是並列的在1迴圈內  8和10 是並列的在7迴圈內,,,並沒有三層巢狀0.0

不懂再問吧~

另外**的格式儘量規範一些...看起來好看一點~

c語言中,for迴圈裡巢狀了switch迴圈,switch循

不光是在while裡 在所有的迴圈中,如for,do.while,while裡。break都是跳出當前這一層的迴圈,要是多層迴圈的話,也是隻跳出這一層迴圈。終止這一次的迴圈是用continue.reak 是跳出迴圈體 執行下面的語句的意思 在你這個題目中是 switch 語句回巢狀在for語句當中!...

c語言裡if語句可以巢狀for迴圈麼

c語言裡if語句 裡是可抄以巢狀for迴圈的 if語句裡可以放c語言裡的任意的執行語句 舉例說 char yn int i printf 需要列印1到10之間的所有奇數嗎 y n n scanf c yn if yn y yn y else printf 那就不列印了 n 當然可以,肯定是你記錯了 ...

c語言中的f格式符,C語言中的 f格式符

f在輸入輸出使用,它表示輸入或輸出的數為浮點數 即可以帶小數的數 如 float a scanf f a 就可以輸入3.15 a 3.15 同理 d,表示輸入或輸出的數為整數。c表示輸入或輸出的數為字元。不曉得你上個問題是什麼,但是 f是輸出一個實數,並不需要制定輸出寬度的。他的小數位佔6寬度,小數...