C Programming - Control Instructions - Discussion
#include<stdio.h>
int main()
{
int i=0;
for(; i<=5; i++);
printf("%d", i);
return 0;
}
Step 1: int i = 0; here variable i is an integer type and initialized to '0'.
Step 2: for(; i<=5; i++); variable i=0 is already assigned in previous step. The semi-colon at the end of this for loop tells, "there is no more statement is inside the loop".
Loop 1: here i=0, the condition in for(; 0<=5; i++) loop satisfies and then i is incremented by '1'(one)
Loop 2: here i=1, the condition in for(; 1<=5; i++) loop satisfies and then i is incremented by '1'(one)
Loop 3: here i=2, the condition in for(; 2<=5; i++) loop satisfies and then i is incremented by '1'(one)
Loop 4: here i=3, the condition in for(; 3<=5; i++) loop satisfies and then i is increemented by '1'(one)
Loop 5: here i=4, the condition in for(; 4<=5; i++) loop satisfies and then i is incremented by '1'(one)
Loop 6: here i=5, the condition in for(; 5<=5; i++) loop satisfies and then i is incremented by '1'(one)
Loop 7: here i=6, the condition in for(; 6<=5; i++) loop fails and then i is not incremented.
Step 3: printf("%d", i); here the value of i is 6. Hence the output is '6'.
Value of 'i' will be printed every time when the the loop execute.
What you are thinking is wrong. Because after repeating for the 5th time I satisfies the condition because you have i<=5. So the condition is correct and I will be incremented further and its value become 6. Your assumption is true when the condition is i<5.
You are wrong. The given answers is correct only.
Please note the semi-colon in the for-loop:
for(; i<=5; i++); // <-- note this semi-colon.
printf("%d,", i); // printf is NOT a part of for-loop, it is next stmt to for-loop.
If you remove that last-semi-colon in the for loop, the it will become like :
for(; i<=5; i++)
printf("%d,", i); // this printf is only the part of for-loop.
Now it will work as you said. The main purpose of this question is to check whether are you able to find the above difference.
Hope this help you. Have a nice day!
It prints the value of i. So answer is A.