C 語言中的多重循環嵌套
多重循環嵌套是我們之前講過的幾種不同的循環控制語句的組合,可以有不同的組合形式。在這里,我們給大家舉例講解。
1. 單一循環語句組成的嵌套循環
1.1 由 for 語句組成的循環嵌套
#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;
}
運行結果:
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
這個程序內部的循環語句執行了 15 次,外部的循環語句執行了 3 次。
1.2 由 do while 語句組成的循環嵌套
#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;
}
運行結果:
Outside: 4
Inside: 4
Inside: 5
Inside: 6
Outside: 3
Inside: 7
這個程序的內層循環執行了 4 次,外層循環執行了 2 次。
1.3 由 while 語句組成的循環嵌套
#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;
}
運行結果:
Outside: 4
Inside: 4
Inside: 5
Inside: 6
Outside: 3
這個程序的內層循環執行了 3 次,外層循環執行了 2 次。
2. 不同類型循環組成的嵌套循環
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;
}
運行結果:
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
程序中循環 3 執行了 3 次,循環 2 執行了 6 次,循環 1 執行了 2 次。
大家可以根據上面的例子進行拓展,可以有不同的組合與不同的嵌套層數。
3. 小結
多重循環嵌套,就是將原有的循環控制語句進行嵌套組合,也就是將一個循環語句寫到其他的循環語句中的循環體中。這樣就可以循環多次執行循環體中的循環。這種循環有點如同我們使用的電度表,俗稱電表。當你用電的時候,電表會從最低位開始不斷循環,當完成一圈循環后,上一位就會自動加一。這種循環使得電表中的數字依次增加。
Tips:如果不是有特殊的需求,請為你的所有的循環語句設置可以達到的循環停止的條件。不然就是無盡的死循環,會讓程序在耗盡系統分配給它的資源后被操作系統強制終止,或者造成操作系統的資源搶占,使得操作系統沒有辦法相應別的軟件的請求。