c語言for循環嵌套
㈠ c語言for循環嵌套if語句
兩種方法,一種是重新賦值,程序段如下
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指令並無不可,樓主可自己作出選擇。
㈡ C語言——循環嵌套(for)
按照你的要求編寫的九九乘法表的C語言程序如下
#include<stdio.h>
intmain()
{
inti,j,n;
scanf("%d",&n);
for(i=1;i<=n;i++){
for(j=1;j<=i;j++){
printf("%2d*%2d=%2d",i,j,i*j);
}
printf(" ");
}
return0;
}
㈢ C語言for循環嵌套講解
循環的過程是先執行第一個大循環for(i=0;i<3;i++),此句中先給i賦值0,在判斷條件i<3是否成立賦值後的i=0了,所以條件成立,成立則做下面一條語句,就是for(j=0;j<4;j++),同樣這個循環還是先賦值j=0,在進行判斷j<4是否成立,成立就再做下一句。
此時scanf語句後面已經沒有語句了,所以程序就會跳上去到第二個循環中,即for(j=0;j<4;j++)這句話中,可能你會問為什麼不是第一句
(因為在循環嵌套中只有循環體執行完成所以的任務後才執行下面的語句,就是for(j=0;j<4;j++)
要全部執行完畢才能執行後面的語句。即j<4條件為假時跳出)跳到for(j=0;j<4;j++)這個循環體以後。就會自動加一,就是執行j++(注:在這個for裡面的j=0不再執行),這個賦值過程只在開始時執行。所以
j
這個循環要執行到條件不滿足時停止,即最後j的值要>=4.。
這樣
j
這個循環就結束了。結束後又跳到了第一句。因為第二個for是包含在第一個for
里的。只有第一個for
里包含的語句全部執行完後第一個for就再一次執行i++,i
變成了2,判斷條件i<3成立,就再執行下一句,所以下面的for(j=0;j<4;j++)又要再一次執行。執行完後就在回到第一個for執行。
原理:
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跳出.
還有不懂再問