C語言中的嵌套循環:初學者的全面指南
你好,未來的編程巫師們!今天,我們將深入C語言中神奇的嵌套循環世界。別擔心你還是編程新手——我將成為你這次興奮旅程中的友好指導。在這個教學結束時,你將能像專家一樣嵌套循環!
什麼是嵌套循環?
在我們跳進深水區之前,先來了解一下基礎知識。想像你在整理你的襪子抽屜。你有不同顏色的襪子,而每種顏色又有許多雙。為了整理它們,你可能會逐一檢查每種顏色(外層循環),然後計數並配對該顏色下的每只襪子(內層循環)。這就是編程中嵌套循環的基本原理!
嵌套循環簡單來說就是一個循環內部再有一個循環。內層循環會在外層循環的每次迭代中完全運行。這就像那些俄羅斯套娃——打開一個,裡面還有一個!
嵌套for循環
我們從最常見的嵌套循環類型開始:嵌套的for循環。這裡有一個簡單的例子:
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 3; i++) {
for (j = 1; j <= 3; j++) {
printf("(%d, %d) ", i, j);
}
printf("\n");
}
return 0;
}
這段代碼將輸出:
(1, 1) (1, 2) (1, 3)
(2, 1) (2, 2) (2, 3)
(3, 1) (3, 2) (3, 3)
讓我們分解一下:
- 外層循環(
i
)運行3次。 - 在外層循環的每次迭代中,內層循環(
j
)運行3次。 - 每次內層循環運行時,我們打印
i
和j
的值。 - 內層循環完成後,我們打印一個換行符(
\n
)。
這就像一場舞蹈:外層循環領導,內層循環跟隨,在外層循環每一步中旋轉三次!
一個更具實際意義的例子
現在,讓我們使用嵌套循環來創建一個乘法表:
#include <stdio.h>
int main() {
int i, j;
printf(" ");
for (i = 1; i <= 10; i++) {
printf("%4d", i);
}
printf("\n -------------------------------------\n");
for (i = 1; i <= 10; i++) {
printf("%2d |", i);
for (j = 1; j <= 10; j++) {
printf("%4d", i * j);
}
printf("\n");
}
return 0;
}
這段代碼創建了一個美麗的10x10乘法表。外層循環代表行,內層循環代表列。我們將行號乘以列號以獲得每個單元的值。
在for循環中嵌套while循環
誰說我們不能混合搭配?讓我們試試在for循環中嵌套while循環:
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 5; i++) {
j = 1;
while (j <= i) {
printf("* ");
j++;
}
printf("\n");
}
return 0;
}
這段代碼打印出一個右角三角形星號:
*
* *
* * *
* * * *
* * * * *
在這裡,for循環控制行數,while循環打印每行中的星號。這就像建造一座金字塔——你會在上升時添加更多的磚塊!
C語言中的嵌套循環示例
讓我們探索更多示例來加強我們的理解:
1. 數字模式
#include <stdio.h>
int main() {
int i, j, rows = 5;
for (i = 1; i <= rows; i++) {
for (j = 1; j <= i; j++) {
printf("%d ", j);
}
printf("\n");
}
return 0;
}
這創建了一個數字模式:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
2. 字母模式
#include <stdio.h>
int main() {
int i, j;
char current = 'A';
for (i = 1; i <= 5; i++) {
for (j = 1; j <= i; j++) {
printf("%c ", current++);
}
printf("\n");
}
return 0;
}
這打印出一個字母模式:
A
B C
D E F
G H I J
K L M N O
3. 質數檢查器
#include <stdio.h>
int main() {
int i, j, flag;
printf("1到50之間的質數是:\n");
for (i = 2; i <= 50; i++) {
flag = 0;
for (j = 2; j <= i/2; j++) {
if (i % j == 0) {
flag = 1;
break;
}
}
if (flag == 0)
printf("%d ", i);
}
return 0;
}
這個程序找到了1到50之間的所有質數。外層循環迭代數字,而內層循環檢查每個數字是否為質數。
結論
嵌套循環是編程人員工具箱中的強大工具。它們讓我們能夠處理多維數據並創建複雜模式。記住,熟能生巧!試著修改這些示例或創建自己的嵌套循環程序。
這裡是一個我們已經討論過的嵌套循環類型的快速參考表:
外層循環 | 內層循環 | 示例用例 |
---|---|---|
For | For | 創建2D模式或表格 |
For | While | 變長行操作 |
While | For | 重複固定操作變量次數 |
While | While | 雙重條件基於操作 |
快樂編程,願你的循環總是完美嵌套!
Credits: Image by storyset