[Solved] what happens when increment counter and test counter are interchanged in for-loop syntax? [closed]


The syntax of a for loop in C programming language is:

for ( init; condition; increment )
{
   statement(s);
}
  • Here is the flow of control in a for loop:

    1. The init step is executed first, and only once. This step allows you to declare and initialize any loop control variables. You are not required to put a statement here, as long as a semicolon appears.

    2. Next, the condition is evaluated. If it is true, the body of the loop is executed. If it is false, the body of the loop does not execute and flow of control jumps to the next statement just after the for loop.

    3. After the body of the for loop executes, the flow of control jumps back up to the increment statement. This statement allows you to update any loop control variables. This statement can be left blank, as long as a semicolon appears after the condition.

    4. The condition is now evaluated again. If it is true, the loop executes and the process repeats itself (body of loop, then increment step, and then again condition). After the condition becomes false, the for loop terminates.

In First Case:

  • init set i = 1
  • conditon – here i = 1 which is true in c. (Post increment increases the value after execution of statment)
  • body – executes printf("%d",i);
  • incrementi<100 which is not affecting the value of i.

Now In C for all values from 1 to infinity, its value is true, hence executing infinetly

In Second Case

  • init set i = 0
  • conditon – here i = 0 (again Post Increment) which is false in c, therefore the loop gets exit.

Hence it is not executing even once.

Flow diagram of For Loop :

enter image description here

solved what happens when increment counter and test counter are interchanged in for-loop syntax? [closed]