簡體   English   中英

我需要更好地理解 for 循環

[英]I need better understanding on for loops

誰能解釋一下這個for 循環是如何工作的(下面代碼中的第 9 行),如果你能給我看一個簡單的例子,它會非常有幫助,無論如何謝謝你!

1 #include <iostream>
2 #include <cstdlib>
3 
4 using namespace std;

5 int main(){
6     int n, a , b , ma=0,mb=1000000001;
7     cin >> n ;
8     cin >> a;
9     for( n--; n ; --n ){
10         cin >> b;
11         if(abs(a-b) < abs(ma-mb))
12             ma=a , mb=b;
13         else
14             if(abs(a-b) == abs(ma-mb) && ma+mb > a+b)
15                 ma=a , mb=b;
16         a = b;
17     }
18     cout << ma << " " << mb;
19     return 0;
20 }

for 循環只是編寫 while 循環的另一種方法。 所以這:

for( n--; n ; --n ){
    ...
}

與此相同:

n--;
while(n) {
    ...
    --n;
}

在這種特定情況下,哪個更容易閱讀。 首先它遞減n ,然后執行循環,在每個循環結束時再次遞減n ,直到該遞減導致n通過變為0評估為false

這段代碼聞起來很臭。 如果你給n值 10,它給出

9(第一次進入循環,執行n-- )它執行的每隔一次迭代--n直到 n!=0 時(這是條件n

for 循環的工作方式如下:

它運行一定次數。 我們用一個條件來表示這一點。 它有一個開始和一個增量:

for (start ; condition ; increment )
{
// loop body
}

當您想執行重復性任務時,for 循環和 all 循環非常有用。

假設您想制作一款游戲,這款游戲將進行 3 輪。 這些輪次中的每一輪都可以實現為 for 循環的迭代。 它看起來像這樣:

for(int round = 0; round < 3; ++round) {
// game round logic
}

在上面的循環中,我們從 0 開始。一旦達到 3,我們就已經執行了 3 次 for 循環。 在 for 循環 ++round 的每次迭代被執行后,這會將變量 round 遞增 1。我們可以通過執行以下操作將其遞增不同的值:round+=2 或 round*=2 等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM