關于c語言中的嵌套for循環
main() { <1> int i,j,k; <2> printf("i j k \n"); <3> for(i=0;i<2;i++) <4> for(j=0;j<2;j++) <5> for(k=0;k<2;k++) <6> printf("%d %d %d \n",i,j,k); }for循環的嵌套:就上面的代碼而言,通俗的講,我們可以說<3>套<4>,<4>套<5>但是實際上<3>這句只是for循環的頭部,其主體是<4><5><6>這三句所組成的另一個for循環。
打個比方來講,地球從外到內不是分好幾層的?for循環就跟地球一樣,這里的<3>就相當于地表,<4>是地幔,以此類推。從執行順序來講,我們先不講三層的,講個兩層的好了。
比如上面的<4><5><6>三句:<4> for(j=0;j<2;j++) <5> for(k=0;k<2;k++) <6> printf("%d %d %d \n",i,j,k); 第<4>句:對于從0到2的每一個j(也就是0和1了),都要執行一次<5><6>構成的for循環。而<5>呢?是對于從0到2的每一個k(同樣也是0和1),都要執行一次<6>這個句子。
總的來講,<6>這個句子在這里一共執行了2*2=4次,第一次執行的時候j=0,k=0,第二次的時候j=0,k=1,第三次的時候j=1,k=0,第四次的時候j=1,k=1。另外,也有人問過關于嵌套for循環的問題,請參看這里的解答:http://**question/*。
for循環語句嵌套怎么算?ForIFrom1To9ForJFrom0To9If10J+I=J^2-I^2
雖然不知道你用的是什么語言,不過各種語言應該是類似的.在你程序中:如果不用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循環語句的使用講解
只要指定條件為 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語句嵌套
首先聲明一下: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循環內的嵌套while語句
舉個例子,在for語句里加入了while循環,如果while的條件滿足,則執行下面的語句,然后跳出這個循環,然后執行下一個語句。
boll find=false; //定義一個布爾型的變量,初始值為falsefor(int i=1;i 舉個例子: 用for循環輸出以下圖案: * *** ***** ******* #include<stdio.h> main() { int i,j,k; for(i=0;i<=3;i++) { for(j=0;j<=2-i;j++) printf(" "); for(k=0;k<=2*i;k++) printf("*"); printf("\n"); } } for(i=0;i<=3;i++)下面大括號里面的for(j=0;j<=2-i;j++)和for(k=0;k<=2*i;k++)就是它的兩個嵌套子循環。 首先程序執行父循環,i=0; 然后執行子循環里靠前的for(j=0;j<=2-i;j++),j=0; 滿足j<=2-i這個條件,打印一個“空格”。 這個子循環繼續自循環,j=1;依然滿足條件,繼續打印一個空格; 繼續自循環,j=2;依然滿足條件,再打印一個空格。 繼續自循環,j=3,這時已經不滿足j<=2-i這個條件了。跳出循環。執行下面的代碼。 也就是第二個子循環for(k=0;k<=2*i;k++),它依然是在父循環的i=0的條件下執行。 第一輪自循環,k=0,滿足條件k<=2*i;k++),打印一個*號。(注:這個*號是跟在前面的那三個空格之后,因為前面一個子循環沒有打印換行。 第二輪自循環:k=1,不滿足條件k<=2*i;k++),跳出自循環,執行后面的代碼printf("\n"),換行。 (注:printf("\n")這句代碼并不是包含在for(k=0;k<=2*i;k++)這個循環里面的,因為一個條件語句下如果不用大括號括起來,默認為只包含下面的第一段代碼。 這時父循環第一輪循環全部結束,執行第二輪父循環。i=1;在這個條件下首先判斷是否符合父循環本身條件,如果符合,依次判斷兩個子循環是否滿足條件,輸出相應結果。如果不符合,直接跳出; 總結一下,嵌套循環的執行原則是:首先執行父第一輪父循環,在滿足第一個父循環條件下完全執行子循環。如有多個子循環,按照從上往下的原則完全執行。也就是說要第一個子循環進行一個完整的循環之后才會繼續執行下一個子循環。 循環的過程是先執行第一個大循環for(i=0;i 此時scanf語句后面已經沒有語句了,所以程序就會跳上去到第二個循環中,即for(j=0;j(因為在循環嵌套中只有循環體執行完成所以的任務后才執行下面的語句,就是for(j=0;j 要全部執行完畢才能執行后面的語句。即j=4.。 這樣 j 這個循環就結束了。結束后又跳到了第一句。因為第二個for是包含在第一個for 里的。只有第一個for 里包含的語句全部執行完后第一個for就再一次執行i++,i 變成了2,判斷條件i 原理: i=0,j 執行4次,給a[0][0],a[0][1],a[0][2],a[0][3]賦值 i=1,j 執行4次,給a[1][0],a[1][1],a[1][2],a[1][3]賦值 i=2,j 執行4次,給a[2][0],a[2][1],a[2][2],a[2][3]賦值 i=3跳出. 還有不懂再問 你的程序有問題, (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; } for循環如何嵌套
c語言 for循環嵌套
for循環的嵌套語句怎么算