Chapter4Control Statements Nva
Chapter4Control Statements Nva
Reference:
Chapter 4 Lessons 4.1 – 4.6, Beginning Decision Making
Week4 - 2
CS1010 (AY2012/3 Semester 1)
Week4 - 3
CS1010 (AY2012/3 Semester 1)
3. Selection Structures
• C provides two control structures that allow
you to select a group of statements to be
executed or skipped when certain conditions
are met.
if … else…
switch
Week4 - 4
CS1010 (AY2012/3 Semester 1)
if ( condition ) {
/* Execute these statements if TRUE */
}
Example
Week4 - 5
CS1010 (AY2012/3 Semester 1)
Example
Week4 - 6
CS1010 (AY2012/3 Semester 1)
Week4 - 7
CS1010 (AY2012/2013 Semester 1)
3.2 Condition
• A condition is an expression evaluated to true or false.
• It is composed of expressions combined with relational
operators.
• Relational operators
• Examples: ( a <= 10 ), ( count > max ), ( value != -9 )
Week4 - 8
CS1010 (AY2012/3 Semester 1)
Week4 - 9
CS1010 (AY2012/3 Semester 1)
Week4 - 10
CS1010 (AY2012/3 Semester 1)
A B A && B A || B !A
False False False False True
Note: There are bitwise
False True False True True
operators such as & , | and
True False False True False ^, but we are not covering
True True True True False these in CS1010.
Week4 - 11
CS1010 (AY2012/3 Semester 1)
See Week4_EvalBoolean.c
Week4 - 12
CS1010 (AY2012/3 Semester 1)
4. Indentation Style
• Acceptable Not acceptable
if (cond) { if (cond) if (cond)
statements; { {
} statements; statements;
else { } }
statements; else else No indentation!
} { {
statements; statements;
if (cond) { } }
statements;
} else { if (cond) {
statements; statements; }
} else {
statements; }
Closing braces not
aligned with if/else
keyword.
Week4 - 15
CS1010 (AY2012/3 Semester 1)
5. Quiz (1/2)
• Match each condition in (A) to its equivalent condition in
(B). Assume that a is an int variable.
A B
if (a == 0) { if (a) {
… …
} }
if (a != 0) { if (!a) {
… …
} }
5. Quiz (2/2)
• What is the output of the following code?
if (x <= y)
printf("Line 1\n");
printf("Line 2\n");
printf("Line 3\n");
Week4 - 17
CS1010 (AY2012/3 Semester 1)
Week4 - 18
CS1010 (AY2012/3 Semester 1)
if (guess == jackpot)
printf("You hit the JACKPOT!\n");
Jackpot is fixed to 8! No fun. We need random
return 0;
} number (you’ll learn that in discussion session.)
Can we change the 3 ‘if’ statements into a single
nested ‘if-else’ statement?
Week4 - 19
CS1010 (AY2012/3 Semester 1)
int main(void) {
int guess, jackpot = 8;
else
printf("You hit the JACKPOT!\n");
return 0;
}
Is this single nested ‘if-else’ statement better than 3 ‘if’
statements? Why?
Week4 - 20
CS1010 (AY2012/3 Semester 1)
Week4 - 21
CS1010 (AY2012/3 Semester 1)
Week4 - 22
CS1010 (AY2012/3 Semester 1)
Week4 - 23
CS1010 (AY2012/3 Semester 1)
Week4 - 24
CS1010 (AY2012/3 Semester 1)
Week4 - 25
CS1010 (AY2012/3 Semester 1)
Week4 - 26
CS1010 (AY2012/3 Semester 1)
int a = 3;
if (a > 10);
printf("a is larger than 10\n");
else
printf("a is not larger than 10\n");
printf("Next line\n”);
Week4 - 27
CS1010 (AY2012/3 Semester 1)
Week4 - 28
CS1010 (AY2012/3 Semester 1)
Sequence of if statements
CS1010 (AY2012/3 Semester 1)
Multiple alternatives
CS1010 (AY2012/3 Semester 1)
Nested if else
CS1010 (AY2012/3 Semester 1)
switch ( <variable> ) {
case value1:
Code to execute if <variable> == value1
break;
case value2:
Code to execute if <variable> == value2
break;
...
default:
Code to execute if <variable> does not equal the
value following any of the cases
break;
}
Restriction: variable must be of discrete type
(eg: int, char).
Week4 - 32
CS1010 (AY2012/3 Semester 1)
Example
CS1010 (AY2012/3 Semester 1)
Week4 - 34
CS1010 (AY2012/3 Semester 1)
Problems
End of File