Gabriel
Gabriel

Reputation: 13

I need better understanding on for loops

can someone explain me how this for loop works (Line 9 in code below), and also if you can show me a simple example with it can be very helpfull, thank you anyways!

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 }

Upvotes: -1

Views: 95

Answers (3)

bhristov
bhristov

Reputation: 3187

A for loop works the following way:

It runs for a certain number of times. We signify this with a condition. It has a start and an increment:

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

For loops and all loops are very useful when you want to perform repetitive tasks.

Lets say that you want to make a game and this game will have 3 rounds. Each one of those rounds can be implemented as an iteration of a for loop. It will look like this:

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

In the above loop we start at 0. Once we reach 3, we would have already executed the for-loop 3 times. After each iteration of the for loop ++round gets executed, this increments the variable round by 1. We can increment it by a different value by doing: round+=2 or round*=2 etc.

Upvotes: 0

Mooing Duck
Mooing Duck

Reputation: 66922

A for loop is simply another way to write a while loop. So this:

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

is the same as this:

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

Which, in this specific case, is easier to read. First it decrements n, then does the loop, decrementing n again at the end of each loop, until that decrement causes n to evaluate to false by becoming 0.

Upvotes: 0

Andrea Pollini
Andrea Pollini

Reputation: 290

This code smells a lot. If you give to n the value 10,it gives

9 (first time into loop, exectues n--) every other iteration it executes --n till when n!=0 (which is the condition n

Upvotes: -1

Related Questions