Chapter 5: Control Structures

Similar documents
Introduction. C provides two styles of flow control:

There are algorithms, however, that need to execute statements in some other kind of ordering depending on certain conditions.

Control Structure: Selection

REPETITION CONTROL STRUCTURE LOGO

Module 4: Decision-making and forming loops

Structured Program Development

C++ Programming: From Problem Analysis to Program Design, Third Edition

Repetition and Loop Statements Chapter 5

CS1100 Introduction to Programming

Introduction to C Programming

Lecture Programming in C++ PART 1. By Assistant Professor Dr. Ali Kattan

INTRODUCTION TO C++ PROGRAM CONTROL. Dept. of Electronic Engineering, NCHU. Original slides are from

Theory of control structures

LECTURE 5 Control Structures Part 2

Computer Programming. Decision Making (2) Loops

Control Structure: Loop

Chapter 5: Control Structures II (Repetition) Objectives (cont d.) Objectives. while Looping (Repetition) Structure. Why Is Repetition Needed?

Lecture 8. Daily Puzzle

Problem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur

Loops / Repetition Statements

Chapter 5. Repetition. Contents. Introduction. Three Types of Program Control. Two Types of Repetition. Three Syntax Structures for Looping in C++

Control structures in C. Going beyond sequential

Flow Control. CSC215 Lecture

Decision Making -Branching. Class Incharge: S. Sasirekha

Dr. R. Z. Khan, Associate Professor, Department of Computer Science

Repetition Structures II

Decision Making and Loops

Chapter 4. Flow of Control

3 The L oop Control Structure

C: How to Program. Week /Mar/05

A Look Back at Arithmetic Operators: the Increment and Decrement

Programming Basics and Practice GEDB029 Decision Making, Branching and Looping. Prof. Dr. Mannan Saeed Muhammad bit.ly/gedb029

A control structure refers to the way in which the Programmer specifies the order of executing the statements

Information Science 1

Repetition Structures

Condition-Controlled Loop. Condition-Controlled Loop. If Statement. Various Forms. Conditional-Controlled Loop. Loop Caution.

Chapter 3 Structured Program Development

Chapter 2 - Introduction to C Programming

PDS Lab Section 16 Autumn Tutorial 3. C Programming Constructs

Chapter 4 C Program Control

C++ Programming Lecture 7 Control Structure I (Repetition) Part I

Why Is Repetition Needed?

n Group of statements that are executed repeatedly while some condition remains true

Introduction to Programming

Dept. of CSE, IIT KGP

Information Science 1

STUDENT LESSON A12 Iterations

Unit 3 Decision making, Looping and Arrays

204111: Computer and Programming

C 101. Davide Vernizzi. April 29, 2011

Programming Language. Control Structures: Repetition (while) Eng. Anis Nazer Second Semester

Loops / Repetition Statements. There are three loop constructs in C. Example 2: Grade of several students. Example 1: Fixing Bad Keyboard Input

C++ Programming: From Problem Analysis to Program Design, Fourth Edition. Chapter 5: Control Structures II (Repetition)

Computer Science & Engineering 150A Problem Solving Using Computers

DECISION CONTROL AND LOOPING STATEMENTS

CS 106 Introduction to Computer Science I

Introduction to C Programming. Chih-Wei Tang ( 唐之瑋 ) Department of Communication Engineering National Central University JhongLi, Taiwan

Chapter 13 Control Structures

Problem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur

Problem Solving and 'C' Programming

LESSON 3 CONTROL STRUCTURES

CP FAQS Q-1) Define flowchart and explain Various symbols of flowchart Q-2) Explain basic structure of c language Documentation section :

Lecture 6. Statements

MODULE 2: Branching and Looping

Fundamentals of Programming. Lecture 3: Introduction to C Programming

All copyrights reserved - KV NAD, Aluva. Dinesh Kumar Ram PGT(CS) KV NAD Aluva

Control Structures. Control Structures Conditional Statements COMPUTER PROGRAMMING. Electrical-Electronics Engineering Dept.

OER on Loops in C Programming

Lecture 7 Tao Wang 1

Structured Programming. Dr. Mohamed Khedr Lecture 9

Day05 A. Young W. Lim Sat. Young W. Lim Day05 A Sat 1 / 14

CMSC 104 -Lecture 9 John Y. Park, adapted by C Grasso

CS16 Exam #1 7/17/ Minutes 100 Points total

Week 4 Selection Structures. UniMAP Sem II-11/12 DKT121 Basic Computer Programming 1

Computer Science & Engineering 150A Problem Solving Using Computers. Chapter 5. Repetition in Programs. Notes. Notes. Notes. Lecture 05 - Loops

CHAPTER 2.2 CONTROL STRUCTURES (ITERATION) Dr. Shady Yehia Elmashad

Prepared by: Shraddha Modi

Control Statements. If Statement if statement tests a particular condition

ECE 2400 Computer Systems Programming Fall 2018 Topic 1: Introduction to C

Loops! Loops! Loops! Lecture 5 COP 3014 Fall September 25, 2017

COMP 208 Computers in Engineering

Operators and Control Flow. CS449 Fall 2017

Selec%on and Decision Structures in Java: If Statements and Switch Statements CSC 121 Fall 2016 Howard Rosenthal

AN OVERVIEW OF C, PART 3. CSE 130: Introduction to Programming in C Stony Brook University

Overview of C, Part 2. CSE 130: Introduction to Programming in C Stony Brook University

5.1. Chapter 5: The Increment and Decrement Operators. The Increment and Decrement Operators. Looping. ++ is the increment operator.

Chapter 13. Control Structures

Chapter 3. More Flow of Control. Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Iteration. CSE / ENGR 142 Programming I. Chapter 5. Motivating Loops. One More Type of Control Flow. What s Wrong with HW1?

Chapter 4 C Program Control

Chapter 2, Part I Introduction to C Programming

Flow of Control. Flow of control The order in which statements are executed. Transfer of control

Structured Program Development in C

V2 2/4/ Ch Programming in C. Flow of Control. Flow of Control. Flow of control The order in which statements are executed

CSCE150A. Introduction. While Loop. Compound Assignment. For Loop. Loop Design. Nested Loops. Do-While Loop. Programming Tips CSCE150A.

Example. CS 201 Selection Structures (2) and Repetition. Nested if Statements with More Than One Variable

CSE101-lec#12. Designing Structured Programs Introduction to Functions. Created By: Amanpreet Kaur & Sanjeev Kumar SME (CSE) LPU

Java Programming: Guided Learning with Early Objects Chapter 5 Control Structures II: Repetition

CS 106 Introduction to Computer Science I

Control Statements Review CSC 123 Fall 2018 Howard Rosenthal

Transcription:

Chapter 5: Control Structures In this chapter you will learn about: Sequential structure Selection structure if if else switch Repetition Structure while do while for Continue and break statements S1 2017/18 1

Sequential Structure Statements are executed one by one until the end of the program is reached. begin statement 1 statement 2 statement n int main(void) int count = 0; printf( count = %d\n, count); count++; printf( count = %d\n, count); count++; printf( count = %d\n, count); return(0); Principles of Programming end count = 1 count = 2 count = 3 Press any key to continue 2

Sequential Structure Write a C program that asks the user to enter 3 integer numbers, and then prints the entered numbers in reverse order. #include <stdio.h> int main(void) int num1, num2, num3; Enter the first number: 5 Enter the second number: 9 Enter the third number: 11 The numbers in reverse order: 11 9 5 Press any key to continue // reading the input printf( Enter the first number: ); scanf( %d,&num1); printf( Enter the second number: ); scanf( %d,&num2); printf( Enter the third number: ); scanf( %d,&num3); /* printing the result to the screen */ printf( The numbers in reverse order: %d %d %d \n,num3,num2,num1); return (0); 3

In selection structure, the program is executed based upon the given condition. Only instructions that satisfy the given condition are executed. There are 3 types of selection structure: if A single alternative if else Two alternatives nested if..else Multiple alternatives switch Multiple alternatives Selection Structure No Condition? No Yes Condition? Yes Yes Condition? Yes elsestatement(s) thenstatement(s) thenstatement(s) Principles of Programming No Condition? No elsestatement(s) thenstatement(s) thenstatement(s) 4

Selection structure: if Syntax : if (condition) Statement; The statement is only executed if the condition is satisfied. Example: if (score >= 60) printf( Pass!!\n ); A condition is an expression that can return true or false (usually involving the use of an operator). Principles of Programming Note that there is no semicolon (;) after the if statement. If there is one, that means the if statement and the printf() statement are 2 different statements and they will both get executed sequentially. In the example above, the word Pass!! will only be printed out if the value of score is larger than or equal to 60. If not, the word Pass!! will not be printed out and the program will continue with the next statement. 5

#include <stdio.h> int main(void) int score; printf( Enter the score: ); scanf( %d,&score); if (score >= 60) printf( Pass\n ); printf( Bye\n ); return(0); Enter the score: 75 Pass Bye Press any key to continue Enter the score: 20 Bye Press any key to continue 6

Selection structure: if else Syntax : if (condition) statement1; else statement2; If the condition is satisfied, statement1 will be executed. Otherwise, statement2 will get executed. Example : if (score >= 60) printf( Pass!!\n ); else printf( Fail!!\n ); In the above example, the word Pass!! will be printed if the value of score is bigger than 60 or equal to 60. Otherwise the word Fail!! will be printed out. Principles of Programming 7

#include <stdio.h> int main(void) int score; printf( Enter the score: ); scanf( %d,&score); if (score >= 60) printf( Pass\n ); else printf( Fail\n ); printf( Bye\n ); Enter the score: 75 Pass Bye Press any key to continue Enter the score: 50 Fail Bye Press any key to continue return(0); 8

Plurality of Statements In the examples that we have seen so far, there is only one statement to be executed after the if statement. If we want to execute more than one statement after the condition is satisfied, we have to put curly braces around those statements to tell the compiler that they are a part of the if statement, making it a Compound Statement Compound Statement - A group of statements that executed sequentially which is usually grouped by 9

Plurality of Statements int score; printf( Enter the score: ); scanf( %d,&score); if (score >= 60) printf( You have done very well\n ); printf( I ll give you a present\n ); else printf( You have failed the course\n ); printf( Sorry no present for you\n ); printf( Go and study more ); Compound statement Enter the score: 75 You have done very well I ll give you a present Press any key to continue 10 Enter the score: 25 You have failed the course Sorry no present for you Go and study more Press any key to continue

What happen of you omit the for compound statement? int score; printf( Enter the score: ); scanf( %d,&score); if (score >= 60) printf( You have done very well\n ); printf( I ll give you a present\n ); else printf( You have failed the course\n ); printf( Sorry no present for you\n ); printf( Go and study more ); Principles of Programming Enter the score: 75 You have done very well I ll give you a present Sorry no present for you Go and study more Press any key to continue 11

What happen of you omit the for compound statement? Principles of Programming int score; printf( Enter the score: ); scanf( %d,&score); if (score >= 60) printf( You have done very well\n ); printf( I ll give you a present\n ); else printf( You have failed the course\n ); printf( Sorry no present for you\n ); printf( Go and study more ); 12

Nested if else statements A nested if else statement is an if else statement with another if else statements inside it (multiple choice statement) Example : if (score >= 90) printf( A\n ); else if (score >= 80) printf( B\n ); else if (score >= 70) printf( C\n ); else if (score >= 60) printf( D\n ); else printf( F\n ); Principles of Programming The else if statement means that if the above condition is not satisfied, then try checking this condition.if any one of the condition is already satisfied, then ignore the rest of the available conditions 13

Nested if else statements Can you re-write nested if..else statement using multiple single if statements? It depends on the type of <condition> that we are dealing with. Principles of Programming 14

Example 1: Can you re-write nested if..else statement using multiple single if statements? Re-write using multiple single if Principles of Programming if (score >= 90) printf( A\n ); else if (score >= 80) printf( B\n ); else if (score >= 70) printf( C\n ); else if (score >= 60) printf( D\n ); else printf( F\n ); Enter the score: 85 B Press any key to continue if (score >= 90) printf( A\n ); if (score >= 80) printf( B\n ); if (score >= 70) printf( C\n ); if (score >= 60) printf( D\n ); if (score < 60) printf( F\n ); Enter the score: 85 B C D Press any key to continue Why? 15

Example 2: Can you re-write nested if..else statement using multiple single if statements? Re-write using multiple single if Principles of Programming if (number == 1) printf( One\n ); else if (number == 2) printf( Two\n ); else if (number == 3) printf( Three\n ); else printf( Others\n ); if (number == 1) printf( One\n ); if (number == 2) printf( Two\n ); if (number == 3) printf( Three\n ); if (number < 1 && number > 3) printf( Others\n ); Enter the score: 2 Two Press any key to continue Enter the score: 2 Two Press any key to continue Why? 16

Selection structure: switch A switch statement is used to choose one choice from multiple cases and one default case. Syntax: switch (variable) case case1: statement1; break; case case2: statement2; break; default; statement; break; The break statement is needed so that once a case has been executed, it will skip all the other cases and go outside the switch statement. If the break statement is omitted, the execution will be carried out to the next alternatives until the next break statement is found. Principles of Programming 17

switch - example int number; printf( Enter a positive integer number: ); scanf( %d,&number); switch (number) case 5: printf( Five!!\n ); break; case 9: printf( Nine!!\n ); break; case 13: printf( Thirteen!!\n ); break; default: printf( Others\n ); This program reads a number from the user and print out the string equivalent for 5, 9, 13. If the value being keyed in is other than 5, 9 or 13, the default statement will be executed where the statement Others will be printed out. 18

switch cont The value for case must be either in integer or character datatype. Principles of Programming Eg.1 switch (number) case 5 : statement; break;. Eg.2 switch (color) case R : statement; break; The value for case must be either in integer or character datatype The order of the case statement is unimportant 19

char grade; switch example printf( Enter the grade you scored for this subject: ); scanf( %c,&grade); switch (grade) case a : case A : printf( Excellent!!\n ); printf( You brilliant..\n ); break; case b : case B : printf( Job well done!!\n ); printf( You deserve it..\n ); break; case c : case C : printf( Oh no.. Just an average!!\n ); printf( Try harder next time..\n ); break; default: printf( undefined grade\n ); if (grade == a grade == A ) printf( Excellent!!\n ); printf( You brilliant..\n ); else if (grade == b grade == B ) printf( Job well done!!\n ); printf( You deserve it..\n ); else if (grade == c grade == C ) printf( Oh no.. Just an average!!\n ); printf( Try harder next time..\n ); else printf( undefined grade\n ); 20

Repetition Structure (Loop) Used to execute a number of statements from the program more than one time without having to write the statements multiple times. Two designs of loop : To execute a number of instructions from the program for a finite, pre-determined number of time (Counter-controlled loop) recall the exercise from Topic 2. To execute a number of instructions from the program indifinitely until the user tells it to stop or a special condition is met (Sentinel-controlled loop) 21

There are 3 types of loops in C: while do while for Condition? yes Loop Statement(s) no yes Loop Statement(s) Condition? no 22

Repetition : while loop Syntax : while (condition) statement; Similar as in the if statement, the condition is an expression that can return true or false. As long as the condition is met (the condition expression returns true), the statement inside the while loop will always get executed. When the condition is no longer met (the condition expression returns false), the program will continue on with the next instruction (the one after the while loop). Example: int total = 0; while (total < 5) printf( Total = %d\n, total); total++; Principles of Programming 23

Repetition : while loop cont In this example : (total < 5) is known as loop repetition condition (counter-controlled) total is the loop counter variable In this case, this loop will keep on looping until the counter variable is = 4. Once total = 5, the loop will terminate int total = 0; while (total < 5) printf( Total = %d\n, total); total++; 24

Repetition : while loop cont The printf() statement will get executed as long as the variable total is less than 5. Since the variable total is incremented each time the loop is executed, the loop will stop after the 5th output. int total = 0; while (total < 5) printf( Total = %d\n, total); total++; Total = 0 Total = 1 Total = 2 Total = 3 Total = 4 Press any key to continue Principles of Programming 25

Example Write a program that will read 5 values from the user and prints the sum of the values. #include <stdio.h> int main(void) int number, count = 0, sum = 0; while (number < 5) printf( Enter a number: ); scanf( %d,&number); Principles of Programming sum = sum + number; number++; printf( Sum = %d\n, sum); return(0); Enter a number: 6 Enter a number: 4 Enter a number: -9 Enter a number: 3 Enter a number: 22 Sum = 26 Press any key to continue 26

Infinite loop If somehow the program never goes out of the loop, the program is said to be stuck in an infinite loop. The infinite loop error happens because the condition expression of the while loop always return a true. If an infinite loop occurs, the program would never terminate and the user would have to terminate the program by force. Principles of Programming 27

What will be the output of the following programs? int total = 0; while (total < 5) printf( Total = %d\n, total); int total = 0; while (total < 5) printf( Total = %d\n, total + 1); int total = 0; while (total < 5) printf( Total = %d\n, total); total--; Principles of Programming 28

Repetition : do while loop Syntax do statement; while(condition); A do while loop is pretty much the same as the while loop except that the condition is checked after the first execution of the statement has been made. When there is a do while loop, the statement(s) inside it will be executed once no matter what. Only after that the condition will be checked to decide whether the loop should be executed again or just continue with the rest of the program. 29

do while loop cont Let us consider the following program: int total = 10; while (total < 10) printf( Total = %d\n, total); total++; printf( Bye.. ); What does this program do? The program will only print the word Bye... The statements inside the while loop will never be executed since the condition is already not satisfied when it is time for the while loop to get executed. 30

do while loop cont Now consider the following program: int total = 10; do printf( Total = %d\n, total); total++; while (total < 10) printf( Bye.. ); Compared to the previous one, what will the output be? The program will get an output: Total = 10 Bye.. because the condition is not checked at the beginning of the loop. Therefore the statements inside the loop get executed once. 31

do while loop cont do.. while loop is very useful when it comes to data validation. Say for example we want to write a program that will read the score marks from the user, and print its equivalent grade (recall example from the selection section) Say that the score marks should be between 0 100. If the user keys in value other than 0 100, our program will need to do something. Option 1: We could tell the users that they have entered a wrong input and terminate the program. Option 2: We could tell the users that they have entered a wrong input and ask them to reenter the input. 32

int score; Option 1: default case for if..else printf( Enter the score: ); scanf( %d,&score); Principles of Programming if (score >= 90 && score <= 100) printf( A\n ); else if (score >= 80 && score < 90) printf( B\n ); else if (score >= 70 && score < 80) printf( C\n ); else if (score >= 60 && score < 70) printf( D\n ); else if (score >= 0 && score < 60 printf( F\n ); else printf( Sorry, input should only be between 0 100 \n ); 33

Option 2: do.. while (input validation) int score; do printf( Enter the score: ); scanf( %d,&score); if (score < 0 score > 100) printf( Sorry, input must be between 0 100\n ); while (score < 0 score > 100); Principles of Programming if (score >= 90 && score <= 100) printf( A\n ); else if (score >= 80 && score < 90) printf( B\n ); else if (score >= 70 && score < 80) printf( C\n ); else if (score >= 60 && score < 70) printf( D\n ); else printf( F\n ); 34 Enter the score: -9 Sorry, input must be between 0 100 Enter the score: 150 Sorry, input must be between 0 100 Enter the score: 89 B Press any key to continue

while vs do..while for input validation do printf( Enter the score: ); scanf( %d, &score); if (score < 0 score > 100) printf( Sorry, input must be between 0 100\n ); while (score < 0 score > 100); do..while loop printf( Enter the score: ); scanf( %d, &score); while loop while (score < 0 score > 100) printf( Sorry, input must be between 0 100\n ); printf( Enter the score: ); scanf( %d,&score); 35

Repetition : for loop Syntax : for (expression1; expression2; expression3) statement; Expression1: initialize the controlling variable Expression2: the loop condition Expression3: changes that would be done to the controlling variable at the end of each loop. Note that each expression is separated by a semicolon (;) 36

for loop - example Example: int total; for (total = 0; total < 5; total++) printf( Total = %d\n, total); Total = 0 Total = 1 Total = 2 Total = 3 Total = 4 Press any key to continue 37

int total = 0; for loop vs while loop while (total < 5) printf( Total = %d\n, total); total++; int total; for (total = 0; total < 5; total++) printf( Total = %d\n, total); 38

for loop cont Principles of Programming Notice that the output is the same as the one for the while loop example. In fact, the two examples are exactly equivalent. Using a for loop is just another way of writing a while loop that uses a controlling variable. It is also possible to omit one or more of the for loop expressions. In such a case, we just put the semicolon without the expression. int total= 0; for (; total < 5; total++) printf( Total = %d\n, total); 39

Repetition Structure (Loop) Used to execute a number of statements from the program more than one time without having to write the statements multiple times. Two designs of loop : To execute a number of instructions from the program for a finite, pre-determined number of time (Counter-controlled loop) recall the exercise from Topic 2. To execute a number of instructions from the program indifinitely until the user tells it to stop or a special condition is met (Sentinel-controlled loop) 40

Sentinel-controlled loop All this while you have seen what we call counter controlled loop method. Counter control loop is used when we know beforehand how many iteration that the loop should execute. There will be cases where we (as the programmer) do not know how many times the loop should be executed, because the decision is up to the users. In this case, to terminate the loop, we need to use sentinel controlled loop method 41

Sentinel-controlled loop In order to exit from the loop, the user must enter a unique data value, called a sentinel value. The sentinel value must be a value that could not normally occur as data. The algorithm for sentinel-controlled loop: read a value while the value is not sentinel value process the value read the next value end_while 42

Sentinel-controlled loop Write a program that will read n values from the user and prints the sum of the values. The program stops reading values from the users when they enter ZERO. In this example, the program task is to read values from the users and sum up then values. The sentinel value for this example is ZERO, since ZERO is not part of the data value (anything + zero will not cause any changes to the value) 43

Sentinel-controlled loop #include <stdio.h> int main(void) int number, count = 0, sum = 0; printf( Enter a number [zero to end]: ); scanf( %d,&number); while (number!= 0) sum = sum + number; printf( Enter a number [zero to end]: ); scanf( %d,&number); printf( Sum = %d\n, sum); return(0); 44 Enter a number [zero to end]: 3 Enter a number [zero to end]: -6 Enter a number [zero to end]: 10 Enter a number [zero to end]: 4 Enter a number [zero to end]: -7 Enter a number [zero to end]: 13 Enter a number [zero to end]: 24 Enter a number [zero to end]: 0 Sum = 41 Press any key to continue

continue and break statement Both of these statements are used to modify the program flow when a selection structure or a repetition structure is used. The break statement is used to break out of selection or repetition structure. For example: for (a = 0; a < 5; a++) if (a == 2) break; printf( a = %d\n, a); The output of this example would be: a = 0 a = 1 When a = 2, the program will break out of the for loop due to the break statement. This will effectively terminate the loop. It will not wait till the value of a reaches 5 before terminating the loop. Principles of Programming 45

continue and break statement The continue statement is used to ignore the rest of the statements in the loop and continue with the next iteration. Example: for (a = 0; a < 5; a++) if (a == 2) continue; printf( a = %d\n, a); Output: a = 0 a = 1 a = 3 a = 4 a = 2 is not printed out because the loop skips the printf() function when the continue statement is encountered. 46 Principles of Programming

continue and break statement In a while and do while structure, the loop condition will be checked as soon as the continue statement is encountered to determine whether the loop will be continued. In a for loop, any modification to the controlling variable will be done before the condition is checked. Principles of Programming 47

SUMMARY In this chapter, you ve learnt about 3 control structures in C programming : Sequential Selection if..else nested if..else switch Repetition while do while for Two designs of repetition : Counter-controlled Sentinel-controlled The use of continue and break statement 48

Exercise Write a program that reads positive integer numbers using repetition control-structure until the user terminates the program by entering zero. Your program should determine and print the smallest and largest of the supplied numbers. Please include appropriate input validation in your program. Principles of Programming 49