C 語言中的多重循環(huán)嵌套
多重循環(huán)嵌套是我們之前講過的幾種不同的循環(huán)控制語句的組合,可以有不同的組合形式。在這里,我們給大家舉例講解。
1. 單一循環(huán)語句組成的嵌套循環(huán)
1.1 由 for 語句組成的循環(huán)嵌套
#include <stdio.h>
int main()
{
for (int i = 0; i < 3; i++)
{
printf("Outside: %d\n", i);
for (int j = 5; j < 10; j++)
{
printf("Inside: %d\n", j);
}
}
return 0;
}
運(yùn)行結(jié)果:
Outside: 0
Inside: 5
Inside: 6
Inside: 7
Inside: 8
Inside: 9
Outside: 1
Inside: 5
Inside: 6
Inside: 7
Inside: 8
Inside: 9
Outside: 2
Inside: 5
Inside: 6
Inside: 7
Inside: 8
Inside: 9
這個(gè)程序內(nèi)部的循環(huán)語句執(zhí)行了 15 次,外部的循環(huán)語句執(zhí)行了 3 次。
1.2 由 do while 語句組成的循環(huán)嵌套
#include <stdio.h>
int main()
{
int i = 5, j = 3;
do
{
i--;
printf("Outside: %d\n", i);
do
{
j++;
printf("Inside: %d\n", j);
} while (j < 6);
} while (i > 3);
return 0;
}
運(yùn)行結(jié)果:
Outside: 4
Inside: 4
Inside: 5
Inside: 6
Outside: 3
Inside: 7
這個(gè)程序的內(nèi)層循環(huán)執(zhí)行了 4 次,外層循環(huán)執(zhí)行了 2 次。
1.3 由 while 語句組成的循環(huán)嵌套
#include <stdio.h>
int main()
{
int i = 5, j = 3;
while (i > 3)
{
i--;
printf("Outside: %d\n", i);
while (j < 6)
{
j++;
printf("Inside: %d\n", j);
}
}
return 0;
}
運(yùn)行結(jié)果:
Outside: 4
Inside: 4
Inside: 5
Inside: 6
Outside: 3
這個(gè)程序的內(nèi)層循環(huán)執(zhí)行了 3 次,外層循環(huán)執(zhí)行了 2 次。
2. 不同類型循環(huán)組成的嵌套循環(huán)
2.1 由 do while , do 和 for 語句組成的三重嵌套
#include <stdio.h>
int main()
{
int i = 5, k = 0;
do
{
i--;
printf("Loop 1: %d\n", i);
for (int j = 0; j < 3; j++)
{
printf("Loop 2: %d\n", j);
while (k < 3)
{
k++;
printf("Loop 3: %d\n", k);
}
}
} while (i > 3);
return 0;
}
運(yùn)行結(jié)果:
Loop 1: 4
Loop 2: 0
Loop 3: 1
Loop 3: 2
Loop 3: 3
Loop 2: 1
Loop 2: 2
Loop 1: 3
Loop 2: 0
Loop 2: 1
Loop 2: 2
程序中循環(huán) 3 執(zhí)行了 3 次,循環(huán) 2 執(zhí)行了 6 次,循環(huán) 1 執(zhí)行了 2 次。
大家可以根據(jù)上面的例子進(jìn)行拓展,可以有不同的組合與不同的嵌套層數(shù)。
3. 小結(jié)
多重循環(huán)嵌套,就是將原有的循環(huán)控制語句進(jìn)行嵌套組合,也就是將一個(gè)循環(huán)語句寫到其他的循環(huán)語句中的循環(huán)體中。這樣就可以循環(huán)多次執(zhí)行循環(huán)體中的循環(huán)。這種循環(huán)有點(diǎn)如同我們使用的電度表,俗稱電表。當(dāng)你用電的時(shí)候,電表會(huì)從最低位開始不斷循環(huán),當(dāng)完成一圈循環(huán)后,上一位就會(huì)自動(dòng)加一。這種循環(huán)使得電表中的數(shù)字依次增加。
Tips:如果不是有特殊的需求,請(qǐng)為你的所有的循環(huán)語句設(shè)置可以達(dá)到的循環(huán)停止的條件。不然就是無盡的死循環(huán),會(huì)讓程序在耗盡系統(tǒng)分配給它的資源后被操作系統(tǒng)強(qiáng)制終止,或者造成操作系統(tǒng)的資源搶占,使得操作系統(tǒng)沒有辦法相應(yīng)別的軟件的請(qǐng)求。