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