## DEV Community

Ahmed Gouda

Posted on • Updated on • Originally published at ahmedgouda.hashnode.dev

# 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");
}
{
puts("B");
}
{
puts("C");
}
{
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':
break;

case 'B':
break;

case 'C':
break;

case 'D':
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");

``````

### 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.