目錄
一、while循環簡介
二、if和while的對比
語法結構對比:
實際代碼對比:
三、while語句的執行流程
while循環的執行流程如下:
流程圖表示:
四、while循環實踐
練習:在屏幕上打印1~10的值
五、進階練習
題目:輸入一個正整數,逆序打印這個整數的每一位
解題思路:
參考代碼:
代碼改進建議:
一、while循環簡介
????????C語言提供了3種循環語句,while循環是其中最基礎的一種。while語句的語法結構與if語句非常相似,但功能卻大不相同。
二、if和while的對比
語法結構對比:
if(表達式)語句;while(表達式)語句; // 如果循環體想包含更多語句,可以加上大括號
實際代碼對比:
// 代碼1 - if語句
#include <stdio.h>
int main()
{if(1)printf("hehe\n"); // if條件滿足,只打印一次hehereturn 0;
}// 代碼2 - while語句
#include <stdio.h>
int main()
{while(1)printf("hehe\n"); // while條件滿足,會不斷循環打印hehereturn 0;
}
關鍵區別:if語句只會執行一次條件滿足的代碼,而while語句會重復執行,直到條件不再滿足。
三、while語句的執行流程
while循環的執行流程如下:
-
首先判斷表達式值:
-
如果值為0(假),循環立即結束
-
如果值不為0(真),執行循環體語句
-
-
循環體執行完畢后,再次判斷表達式
-
重復上述過程,直到表達式值為0
流程圖表示:
四、while循環實踐
練習:在屏幕上打印1~10的值
#include <stdio.h>
int main()
{int i = 1; // 初始化計數器while(i <= 10) // 循環條件{printf("%d ", i); // 打印當前值i = i + 1; // 更新計數器}return 0;
}
程序分析:
-
初始化i為1
-
檢查i是否<=10
-
如果條件為真,執行循環體(打印i并使i增加1)
-
重復步驟2-3,直到i>10時循環結束
五、進階練習
題目:輸入一個正整數,逆序打印這個整數的每一位
示例:
-
輸入:1234,輸出:4 3 2 1
-
輸入:521,輸出:1 2 5
解題思路:
-
獲取最低位:使用n%10運算,如1234%10=4
-
去掉最低位:使用n/10運算,如1234/10=123
-
循環上述兩步,直到n變為0
參考代碼:
#include <stdio.h>
int main()
{int n = 0;printf("請輸入一個正整數:");scanf("%d", &n);while(n != 0){printf("%d ", n % 10); // 打印當前最低位n /= 10; // 去掉已經處理的最低位}return 0;
}
代碼改進建議:
-
添加輸入驗證,確保輸入的是正整數
-
可以在最后添加換行,使輸出更整潔
-
考慮處理n=0的特殊情況
#include <stdio.h>
int main()
{int n = 0;printf("請輸入一個正整數:");scanf("%d", &n);if(n == 0) {printf("0\n");return 0;}if(n < 0) {printf("輸入必須是正整數!\n");return 1;}while(n != 0){printf("%d ", n % 10);n /= 10;}printf("\n"); // 添加換行return 0;
}