Selection and Iteration in C

Selection Statements

Selection statements are used to choose among alternative actions.

if

if( Condition )
{
    Action;
}
if(grade >= 60)
{
    puts("Passed");
}

if .. else

if(Condition)
{
    Action_1;
}
else
{
    Action_2;
}
if(grade >= 60)
{
    puts("Passed");
}
else
{
    puts("Failed");
}

if .. elseif

if(Condition_1)
{
    Action_1;
}
else if(Condition_2)
{
    Action_2;
}
else if(Condition_3)
{
    Action_3;
}
else
{
    Action_4;
}
if(grade >= 90)
{
    puts("A");
}
else if(grade >= 80)
{
    puts("B");
}
else if(grade >= 70)
{
    puts("C");
}
else if(grade >= 60)
{
    puts("D");
}
else
{
    puts("F");
}

switch

switch(Condition)
{
case 1:
    Action_1;
    break;

case 2:
    Action_2;
    break;

case 3:
    Action_3;
    break;

default:
    Action_4;
    break;
}
switch(mark)
{
case 'A':
    puts("Student got excellent grade");
    break;

case 'B':
    puts("Student got very good grade");
    break;

case 'C':
    puts("Student got good degree grade");
    break;

case 'D':
    puts("Student got fair grade");
    break;

default:
    puts("Student should retake the exam");
    break;
}

Conditional Operator

This is the only C ternary operator. It is used in place where if .. else can't.

Condition ? True Action : False Action;
grade >= 60 ? puts("Pass") : puts("Fail");
//or
puts(grade >= 60 ? "Pass" : "Fail");

Iteration Statements

An iteration statement (repetition statement or loop) allows you to specify that an action is to be repeated while some condition remains true.

while

while(Continuation_Condition)
{
    Action;
}
while(grade < 60)
{
    puts("Retake the exam");
}

do .. while

do{

    Action;

}while(Continuation_Condition);
do{
    //do the action once at least before check the condition
    puts("Start the Exam");

}while(grade < 60>);

for

for(Initialization; Continuation_Condition; Increment)
{
    Action;
}
for(int i = 1; i <= 10; i++)
{
    printf("%d ", i);
}

Iteration Types

  1. Counter-Controlled
  2. Sentinel-Controlled

Counter-Controlled Iteration

We know in advance exactly how many times the loop will be executed.

Sentinel-Controlled Iteration

We don't know in advance how many times the loop will be executed. We use sentinel value (flag value) to indicated "End of Data" entry.