0% found this document useful (0 votes)
7 views32 pages

CO1003 - Chapter 4 - Selection Statements

Uploaded by

Minh Trần
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views32 pages

CO1003 - Chapter 4 - Selection Statements

Uploaded by

Minh Trần
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 32

Ho Chi Minh City University of Technology

Faculty of Computer Science and Engineering

Chapter 4: Selection Statements

Introduction to Computer Programming (C


language)

TS. Võ Thị Ngọc Châu


([email protected],
[email protected])
2017 – 2018, Semester 2
Course Content
🞐 C.1. Introduction to Computers and
Programming
🞐 C.2. C Program Structure and its Components
🞐 C.3. Variables and Basic Data Types
🞐 C.4. Selection Statements
🞐 C.5. Repetition Statements
🞐 C.6. Functions
🞐 C.7. Arrays
🞐 C.8. Pointers
🞐 C.9. File Processing
2
References

🞐 [1] “C: How to Program”, 7th Ed. – Paul Deitel


and Harvey Deitel, Prentice Hall, 2012.
🞐 [2] “The C Programming Language”, 2nd Ed. –
Brian W. Kernighan and Dennis M. Ritchie,
Prentice Hall, 1988
🞐 and others, especially those on the Internet

3
Content

🞐 Introduction
🞐 if.. statements
🞐 if..else.. statements
🞐 Nested if../if..else.. statements
🞐 switch..case.. statements
🞐 Summary

4
Introduction
🞐 Recall
■Statement
🞐 ended with a semicolon (;)
🞐 stretched on multiple lines with a backslash \ at the end
🞐 able to be grouped in the brackets {}
🞐 not consider spaces
■Block
🞐 specified by {} with no semicolon after the right brace
🞐 contains as many statements as required
🞐 is a compound statement, syntactically equivalent to a
single statement
🡪 Sequentially processed from the beginning to the
end of a function 5
Introduction
🞐 Given a void main() {
double positiveNumber[10] = {2, 1, 3, 10, 8, 3, 4, 5, 9, 12};
set of n int n = 10;

positive double minNumber = positiveNumber[0];


int iteration = 1;
numbers, while (iteration < n) {

find the if (minNumber <= positiveNumber[iteration])


Single
iteration = iteration + 1; statement
smallest else {

one. minNumber = positiveNumber[iteration];


Block
iteration = iteration + 1;
(Chapter 1 – }
}
Real code in C)
}
6
Introduction
🞐 Control statements in C
■Sequence
🞐 Assignment
🞐 Function calling
🞐…
■Selection
🞐 if
🞐 if..else..
🞐 switch..case..
■Repetition
🞐 for..
🞐 while..
🞐 do..while..
7
Introduction
🞐 Given a void main() {
double positiveNumber[10] = {2, 1, 3, 10, 8, 3, 4, 5, 9, 12};
set of n int n = 10;

positive double minNumber = positiveNumber[0];


int iteration = 1;
numbers, while (iteration < n) {

find the if (minNumber <= positiveNumber[iteration])


iteration = iteration + 1;
smallest else {

one. minNumber = positiveNumber[iteration];


iteration = iteration + 1;
(Chapter 1 – } Control Statements for Selection
}
Real code in C)
}
8
if.. statements
if (<Condition>) <Statement>

false (0)
<Condition>

if (<Condition> )
{ true (≠ 0)
<Statements>
}
<Statements>

<Statements> is performed (selected)


if <Condition> is true.
9
Otherwise, ignored.
if.. statements

false (0)
grade>=5.0

true (≠ 0)

printf(“Passed”);

Print “Passed” if grade >= 5.0.


Otherwise, ignored.
10
if..else.. statements
if (<Condition>) <Statement T>
else <Statement F>

if (<Condition>) <Statement T> false (0)


else <Condition>
{
<Statements F>
}
true (≠ 0)
if (<Condition> )
{
<Statements T> <Statements <Statements
}
else <Statement F>
T> F>
if (<Condition> )
{
<Statements T>
}
else
<Statements T> is performed (selected)
{
<Statements F> if <Condition> is true.
}
Otherwise, <Statements F> is performed. 11
if..else.. statements

false (0)
grade >= 5.0

true (≠ 0)

printf(“Passed”) printf(“Failed”)

; ;

Print “Passed” if grade >= 5.0.


Otherwise, print “Failed”.
12
if..else.. statements
🞐 Conditional expression:

<condition>?<expression T>:<expression F>

can be regarded as:

if (<condition>) <expression T>;


else <expression F>;

13
if..else.. statements
Which one do you prefer:
conditional expressions or
if..else.. statements?

14
Nested if../if..else.. statements
if (<condition 1>) if (<condition 1>)
{ {
… …
if (<condition 2>) … if (<condition 2>) …
… …
} }
else
{

if (<condition 3>) …

}
15
Nested if../if..else.. statements

16
Nested if../if..else.. statements

17
Nested if../if..else.. statements
A multi-way decision
if (<condition 1>) <statements T1>
else if (<condition 2>) <statements T2>
else if (<condition 3>) <statements T3>

else if (<condition k>) <statements Tk>
else <statements Fk>

18
Nested if../if..else.. statements
Be careful with specifying “else” for “which if”:
if (<condition 1>)
if (<condition 2>) <statements T2>
else <statements F>
should be:
if (<condition 1>) { d = ? 5? 10? 20?
if (<condition 2>) <statements T2>
}
else <statements F1>
or:
if (<condition 1>) {
if (<condition 2>) <statements T2>
else <statements F2>
d = ? 5? 10? 20?
19
switch..case.. statements
false false false
<case (0) <case (0) <case (0)
1> 2> N>
true true true
(≠0) (≠0) (≠0)
<Statements <Statements <Statements
<Default>
1> 2> N>

switch (<expression>) {
a multi-way decision
case <case 1>: <Statements 1>; break;
that tests whether an
case <case 2>: <Statements 2>; break;
expression matches one

of a number of constant
case <case N>: <Statements N>; break;
[default: <Default>] integer values, and

} branches accordingly
20
switch..case.. statements
switch (<expression>) {
case <case 1>: <Statements 1>; break;
case <case 2>: <Statements 2>; break;

case <case N>: <Statements N>; break;
[default: <Default>]
}

can be regarded as:

if (<expression> == <case 1>) <Statements 1>


else if (<expression> == <case 2>) <Statements 2>

else if (<expression> == <case N>) <Statements N>
[else <Default>]
21
switch..case.. statements
🞐 <expression> has a type of integer numbers,
enumerated data, characters.
🞐 <case 1>, …, <case N> are constants of one
of the aforementioned types.
■Cases serve as labels.
🞐 [default: <Default>] is optional.
🞐 “fall-through” property of switch..case..
■After the code for one case is done, execution falls
through to the next unless an explicit action is
taken to escape.
🞐 break (return) statement
22
switch..case.. statements
false false false
aChar==‘a (0) aChar==‘b (0) … (0)
’ ’
true true true
(≠0) (≠0) (≠0)
printf ‘a’; printf ‘b’; printf

break; break; default;

23
switch..case.. statements
false false false
<case (0) <case (0) <case (0)
1> 2> N>
true true true
(≠0) (≠0) (≠0)
<Statements <Statements <Statements
<Default>
1> 2> N>

switch..case.. statement with “fall-through” property

switch (<expression>) {
case <case 1>: <Statements 1>
case <case 2>: <Statements 2>

case <case N>: <Statements N>
[default: <Default>]
} 24
switch..case.. statements
switch..case.. statement with “fall-through” property
can be regarded as:
if (<expression> == <case 1>) {
switch (<expression>) { <Statements 1>
case <case 1>: <Statements 1> <Statements 2>
case <case 2>: <Statements 2> …
… <Default>
case <case N>: <Statements N> }
[default: <Default>] else if (<expression> == <case 2>) {
<Statements 2>
}

<Default>
}

else if (<expression> == <case N>) {
<Statements N>
<Default>
}
[else <Default>] 25
switch..case.. statements
false false false
aChar==‘a (0) aChar==‘b (0) … (0)
’ ’
true true true
(≠0) (≠0) (≠0)
printf
printf ‘a’; printf ‘b’; …
default;

switch..case.. statement with “fall-through” property

26
27
28
Put them all together
🞐 Given a problem: build your timetable in a
week. Input a day in a week and output its
corresponding activities.
🞐 string.h: a standard library file for strings
■Compare two strings
🞐 int strcmp(const char *str1, const char *str2)
▪ < 0 if str1 < str2 (less than)
▪ > 0 if str1 > str2 (greater than)
▪ = 0 if str1 = str2 (equal)

■Copy a string to another one


🞐 char *strcpy(char *destination, const char *source)
29
Add more codes to make such an input valid (?!)

30
Summary
🞐 Control statements for selection
■if.. statements
■if..else.. statements
■switch..case.. statements

🞐 Statements can be selected for execution


according to a “TRUE” (≠ 0) value of a
condition (expression).
🞐 Selection statements play an important role
in programming.
31
Chapter 4: Selection Statements

32

You might also like