[英]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.