C語言入門:深入理解for循環(huán)語句
for循環(huán)簡介for循環(huán)相較于while循環(huán)來說更復雜一些,但也更直觀一些。for循環(huán)的格式為`for(語句1; 語句2; 語句3) {做事;}`。其中語句1一般用來定義變量,可以不寫,即只寫一個分
for循環(huán)簡介
for循環(huán)相較于while循環(huán)來說更復雜一些,但也更直觀一些。for循環(huán)的格式為`for(語句1; 語句2; 語句3) {做事;}`。其中語句1一般用來定義變量,可以不寫,即只寫一個分號";"。語句2是一個邏輯值,如果是真,則循環(huán)繼續(xù),如果是假,則循環(huán)結(jié)束。如果是空,則循環(huán)繼續(xù),即變成死循環(huán)。語句3一般是跟語句1一樣,也是可有可無,一般用來自增或自減,即循環(huán)的步長。
死循環(huán)示例
```
for (; ; ) {
Console.Write(1);
}
```
這段代碼中,因為語句2為空,所以即是個死循環(huán),程序會不停地輸出"1"。
```
for (; true; ) {
Console.Write(1);
}
```
這段程序中,語句2是邏輯true,所以程序也會一直不停循環(huán),一直輸出"1"。
```
for (; false; ) {
Console.Write(1);
}
```
在這個代碼中,語句2為邏輯false,所以程序什么也不會輸出。
更進一步理解for循環(huán)
語句一可以用來定義變量,并且這個語句只有循環(huán)開始時執(zhí)行一次。下面我們輸出語句一定義的變量i。
語句一可以同時定義兩個同類型的變量,中間用逗號隔開。
語句三可以理解為每一次循環(huán)執(zhí)行完成后才執(zhí)行的語句。
```
for (int i9; true; i ) {
Console.Write(i);
}
```
以上代碼和下面的代碼是等價的:
```
for (int i9; true;) {
Console.Write(i);
i ;
}
```
理解代碼執(zhí)行過程
讓我們看看下面這個代碼的執(zhí)行過程。首先程序執(zhí)行語句一:`int i0;` 然后程序比較語句二:`i<10` 是true還是false,這里明顯是true,所以程序執(zhí)行循環(huán)體,執(zhí)行完循環(huán)體后,執(zhí)行語句三 `i ;`。此時不會再執(zhí)行語句一(前面說了,語句一只執(zhí)行一次),再比較語句二:`i<10` 是true還是false,這里明顯是true,所以程序執(zhí)行循環(huán)體,如此循環(huán),直到語句二的值是false,也就是直到`i<10`是false,循環(huán)體執(zhí)行完畢。最終結(jié)果是從零輸出到9。
嵌套循環(huán)的應(yīng)用
復雜一點的循環(huán)實際上就是循環(huán)的內(nèi)嵌,也就是兩個循環(huán)嵌套使用。對簡單的循環(huán)熟悉了,復雜的也就簡單了。大家不需要去研究很多層的嵌套循環(huán),只要把單層的循環(huán)吃透了,那就算你有100層嵌套,說白了,也只是單層循環(huán)的疊加,沒有什么意義。以下給出一個嵌套循環(huán)的例子,如果看不懂也不用著急,好好練習單層的循環(huán)就好。