Control Structure
• Sequence structures
• Built into C
• Programs executed sequentially by default
• Selection structures
• C has three types: if, if-else, and switch
• Repetition structures
• C has three types: while, do/while and for
Sequence Structure
Sequence Structure
• Programs executed sequentially by default
Control flow:
• Statements executed one after the other in the order written
statement 1
statement 2
Sequence Structure
The if Selection Structure
False
Print “Passed”
grade >= 60
True
if Selection Structure
if (grade>=60)
printf(“Passed”);
0(zero):false
1(nonzero):true
The if-else Selection Structure
Print “Passed”
True
Print “Failed”
grade >= 60
False
if-else Selection Structure
if (grade>=60)
printf(“Passed”);
else
printf(“Failed”);
Conditional Operator
? :
<expression-1>?<expression-2>:<expression-3>
printf(“%s”,(grade>=60)? “Passed”:“Failed”);
(grade>=60)?printf(“Passed”):printf(“Failed”);
Nested Selection Structure
Nested if-else Structure
if (grade>=90)
printf(“A”);
else
if (grade>=80)
printf(“B”);
else
if (grade>=80)
printf(“C”);
else
if (grade>=60)
printf(“D”);
else
printf(“E”);
if (grade>=90)
printf(“A”);
else if (grade>=80)
printf(“B”);
else if (grade>=80)
printf(“C”);
else if (grade>=60)
printf(“D”);
else
printf(“E”);
Compound Statement Nested In if/else
if (grade>=60)
printf(“Passed”);
else {
printf(“Failedn”);
printf(“You must take the course again!”);
}
Two lines
Logical Calculation
(y>5)&&(y<10)
(x<-10)||(x>0)
• !(logical NOT)
• &&(logical AND)
• ||(logical OR)
Logical Expression
(x>5)||(x<-5)
!(a<b)&&(m!=n)
(a+b>c)&&(a+c>b)&&(b+c>a)
Logical Calculation
a !a
1 0
0 1
a b a&&b
1 1 1
1 0 0
0 1 0
0 0 0
a b a||b
1 1 1
1 0 1
0 1 1
0 0 0
!
&&
||
Use Of Logical Expression
void main() {
char c;
c=getchar();
if ((c>=‘A’&&c<=‘Z’)||(c>=‘a’&&c<=‘z’))
printf(“%c is a letter.”, c);
else if (c>=‘0’&&c<=‘9’)
printf(“%c is a digit.”, c);
else
printf(“%c is neither a letter nor a digit.”, c);
}
Multiple-Selection Structure
switch
switch(expression)
{ case <constant_expression_1>: action_1; [break;]
case <constant_expression_2>: action_2; [break;]
……
case <constant_expression_n-1>:action_n-1; [break;]
[default: action_n; [break;]]
}
Multiple-Selection Structure
grade=getchar();
switch(grade)
{ case ‘A’: printf(“85~100n”);
case ‘B’: printf(“70~84n”);
case ‘C’: printf(“60~69n”);
case ‘D’: printf(“<60n”);
default: printf(“errorn”);
}
A
85~100
70~84
60~69
<60
error
Multiple-Selection Structure(cont.)
print
“60~69”
print
“70~84”
print
“85~100”
print
“<60”
print
“error”
‘A’ ‘B’ ‘C’ ‘D’ default
grade
Multiple-Selection Structure
print
“60~69”
print
“70~84”
print
“85~100”
print
“<60”
print
“error”
‘A’ ‘B’ ‘C’ ‘D’ default
grade
Multiple-Selection Structure(cont.)
switch
switch(grade)
{ case ‘A’: printf(“85~100n”); break;
case ‘B’: printf(“70~84n”); break;
case ‘C’: printf(“60~69n”); break;
case ‘D’: printf(“<60n”); break;
default: printf(“errorn”);
}
85~100
break
Multiple-Selection Structure
#include <stdio.h>
int main()
{
char grade;
printf("Enter a grade A-D ");
scanf("%c",&grade);
switch(grade)
{
case 'A': printf("85 ~ 100n"); break;
case 'B': printf("70 ~ 84n"); break;
case 'C': printf("60 ~ 69n"); break;
case 'D': printf("<60n"); break;
default: printf("errorn");
}
}

Session04 selection structure_a