CS 101 Introductory Programming - Lecture 7: Loops In C & Good Coding Practices Presenter: Ankur...

Post on 01-Apr-2015

215 views 0 download

Transcript of CS 101 Introductory Programming - Lecture 7: Loops In C & Good Coding Practices Presenter: Ankur...

CS 101 Introductory Programming - Lecture 7: Loops In C & Good Coding

Practices

Presenter: Ankur Chattopadhyay

2

Command

Command

Command

Command

Command

Sequential Structure(straight-line structure)

Command

Test

Commandsto execute

if False

Command

Commandsto execute

if True

TrueFalse

Example Selection Structure(decision or branching structure)

Flowcharts for sequential, selection and iterative control structures

2Iterative Structure(looping structure)

Command

Commands

Command

Setup Done

Repetition Statements

• Repetition statements allow us to execute a statement multiple times

• Often they are referred to as loops

• Like conditional statements, they are controlled by Boolean expressions

• C has three kinds of repetition statements:

– the while loop– the do loop– the for loop

The for Statement• A for statement has the following syntax:

for ( initialization ; condition ; increment ){ statement;}

The initializationis executed once

before the loop begins

The statement isexecuted until the

condition becomes false

The increment portion is executed at the end of each

iteration

Logic of a for loop

statement

true

conditionevaluated

false

increment

initialization

//Multiplication Algorithmint a, b, product, count;printf("Enter two non-negative numbers: ");scanf("%i %i", &a, &b);for (product = 0, count = 0; count < b; count = count + 1) { product = product + a;}printf("The product of %i and %i is %i\n", a, b, product);

//Sum of first n natural numbersint sum = 0; // the accumulatorfor (int i = 1; i <= n; i++) { sum += i; }

Examples of for loop: Lecture 6

Dissecting The for Statement

• Each expression in the header of a for loop is optional

• If the initialization is left out, no initialization is performed

• If the condition is left out, it is always considered to be true, and therefore creates an infinite loop

– We usually call this a “forever loop”

• If the increment is left out, no increment operation is performed

The while Statement• A while statement has the following syntax:

while ( condition ){ statement;}

• If the condition is true, the statement is executed

• Then the condition is evaluated again, and if it is still true, the statement is executed again

• The statement is executed repeatedly until the condition becomes false

Logic of a while Loop

statement

true false

conditionevaluated

The while Statement

• An example of a while statement:int count = 1;while (count <= 5){printf(“%i”, count); count++; }

• If the condition of a while loop is false initially, the statement is never executed

• Therefore, the body of a while loop will execute zero or more times

Analyzing The while Statement

• A while loop is functionally equivalent to the following structure:

initialization;while ( condition ){ statement; increment;}

// for loop example: Lecture 6for (product = 0, count = 0; count < b; count = count + 1) { product = product + a;}Counter-Controlled Loop - Definite Repetition// equivalent while loop (note: a for loop is more appropriate in this case)product = 0;count = 0;while (count < b) { product = product + a; count = count + 1;}

Examples of while loop

Sentinel-Controlled Loop: Indefinite Repetition

Nesting an if statement inside a loopint keep_going = 1;

while (keep_going == 1) { // computation would go here ...

int answer; printf("Continue? (1 for yes, 0 for no) "); scanf("%i", &answer); if (answer == 0) { keep_going = 0; }}

Another Example of while loop

The do-while Statement

• A do-while statement (also called a do loop) has the following syntax:

do{ statement;} while ( condition )

• The statement is executed once initially, and then the condition is evaluated

• The statement is executed repeatedly until the condition becomes false

Logic of a do-while Loop

true

conditionevaluated

statement

false

Example of a do Statement

• An example of a do loop:

• The body of a do loop executes at least once

int count = 0;do{ count++; printf(“%i”, count);} while (count < 5);

Comparing while and do

statement

true false

conditionevaluated

The while Loop

true

conditionevaluated

statement

false

The do Loop

Infinite Loops• The body of a while loop eventually must

make the condition false

• If not, it is called an infinite loop, which will execute until the user interrupts the program

• This is a common logical (semantic) error

• You should always double check the logic of a program to ensure that your loops will terminate normally

Example: Infinite Loop

• An example of an infinite loop:

int count = 1;while (count <= 25){ printf(“%i”, count); count = count - 1;}

• This loop will continue executing forever

Good Coding Style Practice

• Always place braces around the body of a while loop.

• Advantages:– Easier to read– Will not forget to add the braces if you go back

and add a second statement to the loop body– Less likely to make a semantic error

• Indent the body of a loop - use spaces -- be consistent!

Some Case Studies/Sample Programs To Try Out

• Problem 1:- Write a C program that takes a series of

integer scores as inputs using a loop, exits if a score entered is negative and computes the average of all the scores entered.

• Problem 2:- Write a C program that takes an integer

number as input and determines whether the number is prime or not.

• Problem 3: Using loops in a C program print the following pattern - 1

1 2 1 2 3 1 2 3 4 1 2 3 4 5 (Hint: Use nested loops)