日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言while if嵌套,C语言循环嵌套详解

發(fā)布時間:2023/12/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言while if嵌套,C语言循环嵌套详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在C語言中,if-else、while、do-while、for 都可以相互嵌套。所謂嵌套(Nest),就是一條語句里面還有另一條語句,例如 for 里面還有 for,while 里面還有 while,或者 for 里面有 while,while 里面有 if-else,這都是允許的。

if-else 的嵌套在《C語言if else語句》一節(jié)中已經(jīng)進行了講解,本節(jié)主要介紹循環(huán)結(jié)構(gòu)的嵌套。

示例1:for 嵌套執(zhí)行的流程。

#include

int main()

{

int i, j;

for(i=1; i<=4; i++){ //外層for循環(huán)

for(j=1; j<=4; j++){ //內(nèi)層for循環(huán)

printf("i=%d, j=%d\n", i, j);

}

printf("\n");

}

return 0;

}

運行結(jié)果:

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 循環(huán)嵌套,外層循環(huán)和內(nèi)層循環(huán)交叉執(zhí)行,外層 for 每執(zhí)行一次,內(nèi)層 for 就要執(zhí)行四次。

在C語言中,代碼是順序、同步執(zhí)行的,當(dāng)前代碼必須執(zhí)行完畢后才能執(zhí)行后面的代碼。這就意味著,外層 for 每次循環(huán)時,都必須等待內(nèi)層 for 循環(huán)完畢(也就是循環(huán)4次)才能進行下次循環(huán)。雖然 i 是變量,但是對于內(nèi)層 for 來說,每次循環(huán)時它的值都是固定的。

示例2:輸出一個4×4的整數(shù)矩陣。

#include

int main()

{

int i, j;

for(i=1; i<=4; i++){ //外層for循環(huán)

for(j=1; j<=4; j++){ //內(nèi)層for循環(huán)

printf("%-4d", i*j);

}

printf("\n");

}

return 0;

}

運行結(jié)果:

1 2 3 4

2 4 6 8

3 6 9 12

4 8 12 16

外層 for 第一次循環(huán)時,i為1,內(nèi)層 for 要輸出四次 1*j 的值,也就是第一行數(shù)據(jù);內(nèi)層 ?for 循環(huán)結(jié)束后執(zhí)行 printf("\n"),輸出換行符;接著執(zhí)行外層 for 的 i++ 語句。此時外層 for 的第一次循環(huán)才算結(jié)束。

外層 for 第二次循環(huán)時,i為2,內(nèi)層 for 要輸出四次 2*j 的值,也就是第二行的數(shù)據(jù);接下來執(zhí)行 printf("\n") 和 i++,外層 for 的第二次循環(huán)才算結(jié)束。外層 for 第三次、第四次循環(huán)以此類推。

可以看到,內(nèi)層 for 每循環(huán)一次輸出一個數(shù)據(jù),而外層 for 每循環(huán)一次輸出一行數(shù)據(jù)。

示例3:輸出九九乘法表。

#include

int main(){

int i, j;

for(i=1; i<=9; i++){ //外層for循環(huán)

for(j=1; j<=i; j++){ //內(nèi)層for循環(huán)

printf("%d*%d=%-2d ", i, j, i*j);

}

printf("\n");

}

return 0;

}

運行結(jié)果:

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一樣,內(nèi)層 for 每循環(huán)一次輸出一條數(shù)據(jù),外層 for 每循環(huán)一次輸出一行數(shù)據(jù)。

需要注意的是,內(nèi)層 for 的結(jié)束條件是j<=i。外層 for 每循環(huán)一次,i 的值就會變化,所以每次開始內(nèi)層 for 循環(huán)時,結(jié)束條件是不一樣的。具體如下:

當(dāng) i=1 時,內(nèi)層 for 的結(jié)束條件為 j<=1,只能循環(huán)一次,輸出第一行。

當(dāng) i=2 時,內(nèi)層 for 的結(jié)束條件是 j<=2,循環(huán)兩次,輸出第二行。

當(dāng) i=3 時,內(nèi)層 for 的結(jié)束條件是 j<=3,循環(huán)三次,輸出第三行。

當(dāng) i=4、5、6... 時,以此類推。

九九乘法表還有更多輸出方式,請查看:C語言輸出九九乘法表(5種解法)

總結(jié)

以上是生活随笔為你收集整理的c语言while if嵌套,C语言循环嵌套详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。