FOR語句嵌套
首先聲明一下:C語言不是很懂。本人在學Java。
根據嵌套for循環語句,最為流行的就是九九乘法表,代碼如下:
for(int i=1;i<10;i++)
{
for(int j=1;j<10;j++)
{
printf("%d%d",i*j);
}
printf(\n);//C語言的換行是這么寫的嗎?!
}
不知道printf語句寫對了沒?沒有環境編譯。
給您解釋下流程:
第一次for循環,i初始值為1,它進入里面內套的for循環,內套的for循環便開始了,結束后才會繼續回到外面的for語句。
那我們來看里面那個for循環:
j從1一直++到9后,程序會看到條件“j<10”時,循環就不再繼續了。就從內套的for循環中跳出來,下一句是換一行,然后“}”表示i=1的這次過程結束了,i++,返回進入下一個循環(即i=2),就這樣,i一直++到9后,因為i<10,所以for循環結束。程序結果就是:
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*1=2 2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*1=3 3*2=6 3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*1=4 4*2=8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 6*8=48 6*9=54
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 7*8=56 7*9=63
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=72
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
上面是java語言編譯運行復制過來的:)
for嵌套循環 格式
for 循環的格式為:for(表達式1;表達式2;表達式3){ 語句塊;}因此嵌套的時候要明白 怎樣才是嵌套,如下所示:for(表達式1;表達式2;表達式3){ for(表達式4;表達式5;表達式6) //這里的for循環就是嵌套的 { 語句塊; }}//你所謂的第二個for后邊用不用加分號,不知道你想要做什么;規范的 標準的嵌套如上所示如果你直接不加{}而是直接向你上邊那樣for() for(表達式4;表達式5;表達式6) ; 這里直接在for循環后邊添加一個分號 就表示 當條件表達式5成立的時候只去執行表達式6,然后進入下一次循環,知道表達式5不成立退出循環如果不加分號,那么這個內層循環控制的語句 就會是最近一個添加了分號的這條語句,如下:for() for(表達式4;表達式5;表達式6) 語句1; 至于你上邊提到的,那是語法問題,c語言必須是以分號 或者 語句塊標識{} 作為一條語句 或者一段語句塊的結束標志。
for循環內的嵌套while語句
舉個例子,在for語句里加入了while循環,如果while的條件滿足,則執行下面的語句,然后跳出這個循環,然后執行下一個語句。
boll find=false; //定義一個布爾型的變量,初始值為falsefor(int i=1;i 雖然不知道你用的是什么語言,不過各種語言應該是類似的.在你程序中:如果不用for嵌套而是把語句寫上9遍:LET I=1For J From 0 To 9 If 10J+I=J^2-I^2 Then Print 10J+I End If End For LET I=2For J From 0 To 9 If 10J+I=J^2-I^2 Then Print 10J+I End If End For LET I=3For J From 0 To 9 If 10J+I=J^2-I^2 Then Print 10J+I End If End For 。 LET I=9For J From 0 To 9 If 10J+I=J^2-I^2 Then Print 10J+I End If End For 如此.。 兩種方法,一種是重新賦值,程序段如下 for(i=0;i<Maxi;i++) for(j=0;j<Maxj;j++) if(true) { i=-1; break; //從此處跳出本層循環,由于賦值i=-1,執行完 //break語句之后,執行外層循環i++指令,使得 //i=0;外層循環相當于重新開始,j的值無需處理, //因每次進入內層循環,j值均會被for語句賦初值0 } 第二種方法是無條件轉移指令: sign: for(i=0;i<Maxi;i++) for(j=0;j<Maxj;j++) f(true) goto sign; //條件為真跳轉至sign語句 一般情況下,應當避免使用goto無條件跳轉指令,因為很多人認為程序可讀性會因為goto的引入而變差,但是在不少情況下goto可以使得程序代碼簡單,效率提高,個人認為適當使用goto指令并無不可,樓主可自己作出選擇。 for(i=3;i>=1;i--) { for (j=1;j<=2;j++) printf("%d",i+j); printf("\n"); } 這是兩個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");然后你把內層循環看成是一段語句,然后按照內層循環的分析方法去看外層循環就可以了。 就是 一個執行循序問題,先執行外面的循環: 1 for(int i=0;i<10;i++){ 2 for(int j=0;j<3;j++) { 3 *("i*j="+i*j); 4 } 5 } 6 。. 。. 當開始循環的時候,i=0,然后繼續運行,j=0,輸出i*j=0 此時循環從j=1,i仍舊為0 , j的值為2 輸出結果為i*j=0,此時j++,j的值為2 循環從j=2,i仍舊為0 ,輸出結果為i*j=0 當j=3,不滿足j<3跳出內部for循環,執行外部for循環第二行代碼,此時i++,i的值變為1 循環i=1, j=0時,結果為i*j=0 i=1,j=1 結果為i*j=1; ;;;;;; ;;;;; 當i循環到9,j=2是,輸出循環結果為i*j=18 當i=10,不滿足i<10,跳出外部循環,執行第6行 我只是拿一個例子給你講解的,我像這樣比給你講解概念好理解,希望對樓主有所幫助 同時要理解i++和++i的區別,for()語句中的i++是要等for語句{。。。}中的內容執行完后在自加,而不是剛開始就自加。++i 是直接在原來的基礎上加1然后在去各種運算 你的程序有問題, (1)最后一個for循環的“)”不對 (2)是你定義第一個for中的判斷語句i<4,但是第二個for的判斷語句為j<=2-i,當i>2時程序就不運行了。 其它的問題暫時還看不出來,主要是不知道你的程序的目的是什么,是不是要以個正的金字塔?下邊是一個倒金字塔程序你先看看。 // * : 定義控制臺應用程序的入口點。 // #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { for(int i=1;i<=5;i++) { for(int t=1;t<=6-i;t++) { printf("* "); } printf("\n"); for(int j=0;j<i;j++) { printf(" "); } } int i; scanf("%d",&i); return 0; } 只要指定條件為 true 都執行語句塊.for (initialization; test; increment)statements 參數initialization 必選項.一個表達式.該表達式只在執行循環前被執行一次.test 必選項.一個 Boolean 表達式.如果 test 是 true,則 statement 被執行.如果 test 是 false,則循環結束.increment 必選項.一個表達式.在每次經過循環的最后執行該遞增表達式.statements 可選項.test 是 true 時,要執行的一個或多個語句.可以是復合語句.說明循環要執行確定的次數,通常使用 for 循環.示例下面的例子示范了一個 for 循環./* 在開始時 i 被設為 0,并在每次重復的最后被增加 1.在循環重復前,如果 i 不小于 10,則循環結束.*/var myarray = new Array();for (i = 0; i myarray = i;} 在c語言的解釋是:for:循環語句.作用:循環.它的一般形式為:for(;;)語句;初始化總是一個賦值語句,它用來給循環控制變量賦初值;條件表達式是一個關系表達式,它決定什么時候退出循環;增量定義循環控制變量每循環一次后按什么方式變化.這三個部分之間用";"分開.例如:for(i=1;i10時,結束循環.注意:(1).for循環中語句可以為語句體,但要用"{"和"}"將參加循環的語句括起來.(2).for循環中的"初始化"、"條件表達式"和"增量"都是選擇項,即可以缺省,但";"不能缺省.省略了初始化,表示不對循環控制變量賦初值.省略了條件表達式,則不做其它處理時便成為死循環.省略了增量,則不對循環控制變量進行操作,這時可在語句體中加入修改循環控制變量的語句.(3).for循環可以有多層嵌套.例如:for(;;) 語句;for(i=1;;i+=2) 語句;for(j=5;;) 語句;這些for循環語句都是正確的.FORfield of regard 的縮寫。 轉載請注明出處華閱文章網 » for嵌套for循環語句 for循環語句嵌套怎么算?ForIFrom1To9ForJFrom0To9If10J+I=J^2-I^2
c語言for循環嵌套if語句
c語言中for for 嵌套語句-搜狗問問
java中for嵌套for循環的詳細講解
for循環的嵌套語句怎么算
需要for循環語句的使用講解