### for loop confusion

I want to calculate all ten multiples of a number.. by using a for loop and multiplying the number with the increment, why is the result appearing only the last multiplication ?

int number,j;

int main(){

cout<<"Enter a number"<<endl;
cin>> j;

for (int i=1;i=10;i++) {

number = j * i;

cout<<"number is: "<<number<<endl;
return 0;
}
}
`for (int i=1;i=10;i++) `

for-loop syntax is (set value/increment,...; condition &&/||...; set value/increment,...)

The return statement is inside the loop. This terminates the program.

Also the for statement is incorrect, it should look something like this:
 `` `` `` for (int i=1; i<=10; i++)``
Last edited on
aha.. it's working!! Thanks..!!

but why does it have to be i<=10 and not i=10??
It's a condition; a logical test. = is an assignment, which was actually modifying i and assignments can be evaluated in conditions (0 is false, everything else is true).
` for (int i = 1; i =10; i++) `

i <= 10 reads i is less than or equal to 10. the first thing you did in the for loop was make i = 1. The compiler tries to read that for loop as;

i equals 1; when 1 = 10; add 1 to i.

1 doesn't equal 10 so i is never added to and the loop doesn't work. Hopefully this is clear enough and 100% correct, I just started learning this also and am probably only a few chapters ahead of you
@pyoung673

Aye.. probably.. :-)

So if it was like i==10 instead of i=10, would then the compiler indeed assign the values properly ?
pyoung673 wrote:
1 doesn't equal 10
etc.
Not the correct explanation.

If the `return 0;` statement is moved out of the loop, where it belongs, an infinite loop results.

First i is initialised with the value 1.

Then the expression `i=10` is evaluated to see whether it is true or false. First, the assignment operation is performed, so i is set to the value 10. Then the result, 10, becomes the result of the expression. In a boolean test, zero is considered `false` and any non-zero value is interpreted as `true`.

After the first pass through the loop, i is incremented via the `i++` operation, and the condition is tested again as above, and i is set to 10 again.

Thus the loop is executed over and over again with exactly the same values.
Last edited on
Topic archived. No new replies allowed.