c语言while if嵌套,C语言循环嵌套详解
在C語言中,if-else、while、do-while、for 都可以相互嵌套。所謂嵌套(Nest),就是一條語句里面還有另一條語句,例如 for 里面還有 for,while 里面還有 while,或者 for 里面有 while,while 里面有 if-else,這都是允許的。
if-else 的嵌套在《C語言if else語句》一節中已經進行了講解,本節主要介紹循環結構的嵌套。
示例1:for 嵌套執行的流程。
#include
int main()
{
int i, j;
for(i=1; i<=4; i++){ //外層for循環
for(j=1; j<=4; j++){ //內層for循環
printf("i=%d, j=%d\n", i, j);
}
printf("\n");
}
return 0;
}
運行結果:
i=1, j=1
i=1, j=2
i=1, j=3
i=1, j=4
i=2, j=1
i=2, j=2
i=2, j=3
i=2, j=4
i=3, j=1
i=3, j=2
i=3, j=3
i=3, j=4
i=4, j=1
i=4, j=2
i=4, j=3
i=4, j=4
本例是一個簡單的 for 循環嵌套,外層循環和內層循環交叉執行,外層 for 每執行一次,內層 for 就要執行四次。
在C語言中,代碼是順序、同步執行的,當前代碼必須執行完畢后才能執行后面的代碼。這就意味著,外層 for 每次循環時,都必須等待內層 for 循環完畢(也就是循環4次)才能進行下次循環。雖然 i 是變量,但是對于內層 for 來說,每次循環時它的值都是固定的。
示例2:輸出一個4×4的整數矩陣。
#include
int main()
{
int i, j;
for(i=1; i<=4; i++){ //外層for循環
for(j=1; j<=4; j++){ //內層for循環
printf("%-4d", i*j);
}
printf("\n");
}
return 0;
}
運行結果:
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
外層 for 第一次循環時,i為1,內層 for 要輸出四次 1*j 的值,也就是第一行數據;內層 ?for 循環結束后執行 printf("\n"),輸出換行符;接著執行外層 for 的 i++ 語句。此時外層 for 的第一次循環才算結束。
外層 for 第二次循環時,i為2,內層 for 要輸出四次 2*j 的值,也就是第二行的數據;接下來執行 printf("\n") 和 i++,外層 for 的第二次循環才算結束。外層 for 第三次、第四次循環以此類推。
可以看到,內層 for 每循環一次輸出一個數據,而外層 for 每循環一次輸出一行數據。
示例3:輸出九九乘法表。
#include
int main(){
int i, j;
for(i=1; i<=9; i++){ //外層for循環
for(j=1; j<=i; j++){ //內層for循環
printf("%d*%d=%-2d ", i, j, i*j);
}
printf("\n");
}
return 0;
}
運行結果:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
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
和示例2一樣,內層 for 每循環一次輸出一條數據,外層 for 每循環一次輸出一行數據。
需要注意的是,內層 for 的結束條件是j<=i。外層 for 每循環一次,i 的值就會變化,所以每次開始內層 for 循環時,結束條件是不一樣的。具體如下:
當 i=1 時,內層 for 的結束條件為 j<=1,只能循環一次,輸出第一行。
當 i=2 時,內層 for 的結束條件是 j<=2,循環兩次,輸出第二行。
當 i=3 時,內層 for 的結束條件是 j<=3,循環三次,輸出第三行。
當 i=4、5、6... 時,以此類推。
九九乘法表還有更多輸出方式,請查看:C語言輸出九九乘法表(5種解法)
總結
以上是生活随笔為你收集整理的c语言while if嵌套,C语言循环嵌套详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 神码ai人工智能写作机器人_从云到设备到
- 下一篇: A Multi-task Ensembl