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循環嵌套if語句
兩種方法,一種是重新賦值,程序段如下 for(i=0;i { int j,i,k=0; for(j=11;j<=30;j++) { if(k%10==0) printf("\n"); for(i=2;i<j;i++) if(!(j%i)) break; if(i>=j-1) { printf("%d\t",j); k++; } } } 請看一下括號的匹配,if是包含在for循環里的,只是用于判斷,根本用不到else。 你首先把格式按層次寫好就能理解了(1):for(i=0;i (2):for(i=0;i (3):不執行D語句。(4):不執行D語句。 至于if之后的其他語句執行情況,那就不屬于你這個問題范圍內了。就不一一列舉了。 另外,因為你的語句中都沒有break或者continue語句,所以循環肯定是執行完畢的,那么所有的i++和j++都會執行,至于什么時候執行,你看看相關for循環的教程就知道了。 轉載請注明出處華閱文章網 » forif語句的嵌套 c語言if 和for語句的嵌套問題,怎么做啊
for 與if的嵌套問題