Control Statements Spring Semester 2013Programming and Data Structure1.

Slides:



Advertisements
Similar presentations
1 Conditional Statement. 2 Conditional Statements Allow different sets of instructions to be executed depending on truth or falsity of a logical condition.
Advertisements

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Chapter 4 – C Program Control Outline 4.1Introduction.
C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.
 2007 Pearson Education, Inc. All rights reserved C Program Control.
Control Structures Control structures control the flow of program execution. 3 types of control structures: sequence, selection.
 2000 Prentice Hall, Inc. All rights reserved. Chapter 4 - Program Control Outline 4.1Introduction 4.2The Essentials of Repetition 4.3Counter-Controlled.
 2008 Pearson Education, Inc. All rights reserved JavaScript: Control Statements II.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved The switch Multiple-Selection Statement switch.
C How to Program, 6/e Summary © by Pearson Education, Inc. All Rights Reserved.
Control Structures II. Why is Repetition Needed? There are many situations in which the same statements need to be executed several times. Example: Formulas.
Chapter 4: Control Structures II
Conditional Statement
 2000 Prentice Hall, Inc. All rights reserved. 1 Chapter 4 - Program Control Outline 4.1Introduction 4.2The Essentials of Repetition 4.3Counter-Controlled.
Lecture 10: Reviews. Control Structures All C programs written in term of 3 control structures Sequence structures Programs executed sequentially by default.
Internet & World Wide Web How to Program, 5/e © by Pearson Education, Inc. All Rights Reserved.
Internet & World Wide Web How to Program, 5/e © by Pearson Education, Inc. All Rights Reserved.
Lecture 4 C Program Control Acknowledgment The notes are adapted from those provided by Deitel & Associates, Inc. and Pearson Education Inc.
1 4.8The do/while Repetition Structure The do/while repetition structure –Similar to the while structure –Condition for repetition tested after the body.
Algorithm and Programming Branching Algorithm & C Program Control Dr. Ir. Riri Fitri Sari MM MSc International Class Electrical Engineering Dept University.
C Program Control Angela Chih-Wei Tang ( 唐 之 瑋 ) Department of Communication Engineering National Central University JhongLi, Taiwan 2010 Fall.
Chapter 3 Control Flow Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information Engineering Da-Yeh University.
Internet & World Wide Web How to Program, 5/e © by Pearson Education, Inc. All Rights Reserved.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Flow Control (Switch, do-while, break) Outline 4.7The.
Chapter 4 C Program Control. Objectives In this chapter, you will learn: –To be able to use the for and do … while repetition statements. –To understand.
University of Palestine software engineering department Introduction to data structures Control Statements: Part 1 instructor: Tasneem Darwish.
Pseudocode When designing an ALGORITHM to solve a problem, Pseudocode, can be used. –Artificial, informal language used to develop algorithms –Similar.
CSCI 3328 Object Oriented Programming in C# Chapter 5: C# Control Statement – Part II – Exercises 1 Xiang Lian The University of Texas Rio Grande Valley.
1 Conditional Statement. 2 Conditional Statements Allow different sets of instructions to be executed depending on truth or falsity of a logical condition.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Flow Control (for) Outline 4.1Introduction 4.2The.
Spring 2005, Gülcihan Özdemir Dağ Lecture 5, Page 1 BIL104E: Introduction to Scientific and Engineering Computing, Spring Lecture 5 Outline 5.0 Revisiting.
Chapter 3 - Structured Program Development Outline 3.1Introduction 3.2Algorithms 3.3Pseudocode 3.4Control Structures 3.5The If Selection Structure 3.6The.
Control Statements in C 1.Decision making statements 2.Looping statements 3.Branching statements
Structured Program Development Angela Chih-Wei Tang ( 唐 之 瑋 ) Department of Communication Engineering National Central University JhongLi, Taiwan 2010.
 2000 Prentice Hall, Inc. All rights reserved. 1 Chapter 4 - Program Control Outline 4.1Introduction 4.2The Essentials of Repetition 4.3Counter-Controlled.
Control Structures - Selections - Repetitions/iterations (part 2) 1 -Based on slides from Deitel & Associates, Inc. - Revised by T. A. Yang.
Java™ How to Program, Early Objects Version, 8/e © by Pearson Education, Inc. All Rights Reserved.
Sections 5.1 – 5.4 © Copyright by Pearson Education, Inc. All Rights Reserved.
CONTROL STATEMENTS LOOPS. WHY IS REPETITION NEEDED?  There are many situations in which the same statements need to be executed several times.  Example:
CONTROL STRUCTURE Chapter 3. CONTROL STRUCTURES ONE-WAY SELECTION Syntax: if (expression) statement Expression referred to as decision maker. Statement.
LECTURE # 8 : REPETITION STATEMENTS By Mr. Ali Edan.
C Language 1 Program Looping. C Language2 Topics Program looping Program looping Relational operators / expressions Relational operators / expressions.
Java Fundamentals 4. Java Programming: From Problem Analysis to Program Design, Second Edition2 Parsing Numeric Strings  Integer, Float, and Double are.
C Program Control September 15, OBJECTIVES The essentials of counter-controlled repetition. To use the for and do...while repetition statements.
Internet & World Wide Web How to Program, 5/e © by Pearson Education, Inc. All Rights Reserved.
Dale Roberts Program Control Department of Computer and Information Science, School of Science, IUPUI Fall 2003 CSCI 230 Dale Roberts, Lecturer
Chapter 4 – C Program Control
The if…else Selection Statement
- Standard C Statements
Lecture 7: Repeating a Known Number of Times
Chapter 4 - Program Control
TMF1414 Introduction to Programming
Programming Fundamentals
JavaScript: Control Statements.
JavaScript: Control Statements I
Looping.
- Additional C Statements
Chapter 8 JavaScript: Control Statements, Part 2
Structured Program Development in C
Structured Program
Chapter 4 - Program Control
3 Control Statements:.
Program Control Topics While loop For loop Switch statement
2.6 The if/else Selection Structure
Dale Roberts, Lecturer IUPUI
Chapter 4 - Program Control
Dale Roberts, Lecturer IUPUI
Dale Roberts, Lecturer IUPUI
ICS103: Programming in C 5: Repetition and Loop Statements
Presentation transcript:

Control Statements Spring Semester 2013Programming and Data Structure1

What do they do? Allow different sets of instructions to be executed depending on the outcome of a logical test. – Whether TRUE or FALSE. – This is called branching. Some applications may also require that a set of instructions be executed repeatedly, possibly again based on some condition. – This is called looping. Spring Semester 2013Programming and Data Structure2

How do we specify the conditions? Using relational operators. – Four relation operators:, >= – Two equality operations: ==, != Using logical operators / connectives. – Two logical connectives: &&, | | – Unary negation operator: ! Spring Semester 2013Programming and Data Structure3

Examples count <= 100 (math+phys+chem)/3 >= 60 (sex==‘M’) && (age>=21) (marks>=80) && (marks<90) (balance>5000) | | (no_of_trans>25) ! (grade==‘A’) ! ((x>20) && (y<16)) Spring Semester 2013Programming and Data Structure4

The conditions evaluate to … Zero – Indicates FALSE. Non-zero – Indicates TRUE. – Typically the condition TRUE is represented by the value ‘1’. Spring Semester 2013Programming and Data Structure5

Branching: The if Statement Diamond symbol (decision symbol) - indicates decision is to be made. – Contains an expression that can be TRUE or FALSE. – Test the condition, and follow appropriate path. Single-entry / single-exit structure. General syntax: if (condition) { …….. } – If there is a single statement in the block, the braces can be omitted. Spring Semester 2013Programming and Data Structure6

The if Selection Structure Spring Semester 2013Programming and Data Structure7 true false grade >= 60 print “Passed” A decision can be made on any expression. zero - false nonzero - true if (grade>=60) printf(“Passed \n”);

Example #include main() { int a,b,c; scanf (“%d %d %d”, &a, &b, &c); if ((a>=b) && (a>=c)) printf (“\n The largest number is: %d”, a); if ((b>=a) && (b>=c)) printf (“\n The largest number is: %d”, b); if ((c>=a) && (c>=b)) printf (“\n The largest number is: %d”, c); } Spring Semester 2013Programming and Data Structure8

Branching: The if-else Statement Also a single-entry / single-exit structure. Allows us to specify two alternate blocks of statements, one of which is executed depending on the outcome of the condition. General syntax: if (condition) { …… block 1 ……. } else { …….. block 2 …….. } – If a block contains a single statement, the braces can be deleted. Spring Semester 2013Programming and Data Structure9

The if/else Selection Structure Spring Semester 2013Programming and Data Structure10 if ( grade >= 60 ) printf( "Passed\n"); else printf( "Failed\n"); truefalse print “Failed” print “Passed” grade >= 60

if-else syntax if ( expression ) { statement1; statement2;. statement_n; } if ( expression ) { statement_1; statement_2;. statement_n; } else { Statement_1;. Statement_m; } Spring Semester 2013Programming and Data Structure11 if (grade>=60) printf(“Passed \n”); if ( grade >= 60 ) printf( "Passed\n"); else printf( "Failed\n");

Nesting of if-else Structures It is possible to nest if-else statements, one within another. All if statements may not be having the “else” part. – Confusion?? Rule to be remembered: – An “else” clause is associated with the closest preceding unmatched “if”. Spring Semester 2013Programming and Data Structure12

if e1 s1 else if e2 s2 if e1 s1 else if e2 s2 else s3 if e1 if e2 s1 else s2 else s3 if e1 if e2 s1 else s2 Spring Semester 2013Programming and Data Structure13 ?

if e1 s1 else if e2 s2else if e2 s2 if e1 s1if e1 s1 else if e2 s2else if e2 s2 else s3 if e1 if e2 s1 else s2 else s3else s3 if e1 if e2 s1if e1 if e2 s1 else s2 Spring Semester 2013Programming and Data Structure14

Example #include main() { int a,b,c; scanf (“%d %d %d”, &a, &b, &c); if (a>=b) if (a>=c) printf (“\n The largest number is: %d”, a); else printf (“\n The largest number is: %d”, c); else if (b>=c) printf (“\n The largest number is: %d”, b); else printf (“\n The largest number is: %d”, c); } Spring Semester 2013Programming and Data Structure15

Example #include main() { int a,b,c; scanf (“%d %d %d”, &a, &b, &c); if ((a>=b) && (a>=c)) printf (“\n The largest number is: %d”, a); else if (b>c) printf (“\n The largest number is: %d”, b); else printf (“\n The largest number is: %d”, c); } Spring Semester 2013Programming and Data Structure16

Logical Operators && (logical AND) – Returns true if both conditions are true || (logical OR) – Returns true if either of its conditions are true ! (logical NOT, logical negation) – Reverses the truth/falsity of its condition – Unary operator, has one operand Spring Semester 2013Programming and Data Structure17 If((paycode==4) && (pay<10000)) printf(“Bonus to be given \n”); Expression Result true && false false true || false true !false true

Confusing Equality ( == ) and Assignment ( = ) Operators Dangerous error – Does not ordinarily cause syntax errors – Any expression that produces a value can be used in control structures – Nonzero values are true, zero values are false Example: if ( payCode == 4 ) printf( "You get a bonus!\n" ); Checks paycode, if it is 4 then a bonus is awarded Spring Semester 2013Programming and Data Structure18 Equality check improper if ( payCode = 4 ) printf( "You get a bonus!\n" ); Equality check proper if ( payCode == 4 ) printf( "You get a bonus!\n" );

Generalization of expression evaluation in C Assignment (=) operation is also a part of expression. Spring Semester 2013Programming and Data Structure19 i=3; Returns the value 3 after assigning it to i. int i=4, j ; if(i=3) j=0; else j=1; j? Whatever be the value of i, j is always 0. int i=4, j ; if(i==3) j=0; else j=1; j=1

More about expressions Increment (++) and Decrement (--)Operations Prefix operation Postfix operation Spring Semester 2013Programming and Data Structure20 ++i; i++; --i; i--; First increment / decrement and then used in evaluation increment / decrement operation after being used in evaluation int t,m=1; t=++m; int t,m=1; t=m++; m=2; t=2; m=2; t=1;

Some More Examples Initial values :: a = 10; b = 20; x = a; a = 11, x = 61 x = 50 + a++; x = 60, a = 11 x = a b; b = 19, x = 29, a = 11 x = a++ – ++a; Undefined value (implementation dependent) Spring Semester 2013Programming and Data Structure21

Ternary conditional operator ( ?: ) – Takes three arguments (condition, value if true, value if false ) – Returns the evaluated value accordingly. Spring Semester 2013Programming and Data Structure22 grade >= 60 ? printf( “Passed\n” ) : printf( “Failed\n” ); (expr1)? (expr2): (expr3); Example: interest = (balance>5000) ? balance*0.2 : balance*0.1; Returns a value

The switch Statement This causes a particular group of statements to be chosen from several available groups. – Uses “switch” statement and “case” labels. – Syntax of the “switch” statement: switch (expression) { case expression-1: { …….. } case expression-2: { …….. } case expression-m: { …….. } default: { ……… } } Spring Semester 2013Programming and Data Structure23

The switch Multiple-Selection Structure Spring Semester 2013Programming and Data Structure24 true false case a case a action(s)break case b case b action(s)break false case z case z action(s)break true default action(s)

Example switch ( letter ) { case 'A': printf("First letter\n"); break; case 'Z': printf("Last letter\n"); break; default : printf("Middle letter\n"); break; } Spring Semester 2013Programming and Data Structure25

Example switch (choice = toupper(getchar())) { case ‘R’:printf (“RED \n”); break; case ‘G’:printf (“GREEN \n”); break; case ‘B’:printf (“BLUE \n”); break; default:printf (“Invalid choice \n”); } Spring Semester 2013Programming and Data Structure26

The if/else Compound statement – Set of statements within a pair of braces – Example: if ( grade >= 60 ) { printf( “Passed.\n” ); printf( “Congratulations.\n” ); } else { printf( “Failed.\n” ); printf( “Please reregister.\n” ); } Spring Semester 2013Programming and Data Structure27

Example switch (choice = getchar()) { case ‘r’: case ‘R’:printf (“RED \n”); break; case ‘g’: case ‘G’:printf (“GREEN \n”); break; case ‘b’: case ‘B’:printf (“BLUE \n”); break; default:printf (“Invalid choice \n”); } Spring Semester 2013Programming and Data Structure28

The break Statement Used to exit from a switch or terminate from a loop. – Already illustrated in the switch examples. With respect to “switch”, the “break” statement causes a transfer of control out of the entire “switch” statement, to the first statement following the “switch” statement. Spring Semester 2013Programming and Data Structure29

The Essentials of Repetition Loop – Group of instructions computer executes repeatedly while some condition remains true Counter-controlled repetition – Definite repetition - know how many times loop will execute – Control variable used to count repetitions Sentinel-controlled repetition – Indefinite repetition – Used when number of repetitions not known – Sentinel value indicates "end of data" Spring Semester 2013Programming and Data Structure30

Counter-Controlled Repetition Counter-controlled repetition requires – name of a control variable (or loop counter). – initial value of the control variable. – condition that tests for the final value of the control variable (i.e., whether looping should continue). – increment (or decrement) by which the control variable is modified each time through the loop. Spring Semester 2013Programming and Data Structure31 int counter =1; //initialization while (counter <= 10) { //repetition condition printf( "%d\n", counter ); ++counter; //increment }

Counter-Controlled Repetition Counter-controlled repetition requires – name of a control variable (or loop counter). – initial value of the control variable. – condition that tests for the final value of the control variable (i.e., whether looping should continue). – increment (or decrement) by which the control variable is modified each time through the loop. Spring Semester 2013Programming and Data Structure32 int counter; for (counter=1;counter<=10;counter++) printf(“%d\n”,counter);

while Statement while (condition) statement_to_repeat; while (condition) { statement_1;... statement_N; } Spring Semester 2013Programming and Data Structure33 /* Weight loss program */ while ( weight > 65 ) { printf("Go, exercise, "); printf("then come back. \n"); printf("Enter your weight: "); scanf("%d", &weight); } int digit = 0; while (digit <= 9) printf (“%d \n”, digit++);

Spring Semester 2013Programming and Data Structure34 C statement(s) true false Single-entry / single-exit structure

do-while Statement Spring Semester 2013Programming and Data Structure35 /* Weight loss program */ do { printf("Go, exercise, "); printf("then come back. \n"); printf("Enter your weight: "); scanf("%d", &weight); } while ( weight > 65 ) ; do { statement-1 statement-2.. statement-n } while ( condition ); At least one round of exercise ensured.

Spring Semester 2013Programming and Data Structure36 C statement(s) true false Single-entry / single-exit structure int digit = 0; do printf (“%d \n”, digit++); while (digit <= 9);

for Statement for (initial; condition; iteration) statement_to_repeat; for (initial; condition; iteration) { statement_1;... statement_N; } Spring Semester 2013Programming and Data Structure37 fact = 1; /* Calculate 10 ! */ for ( i = 1; i < =10; i++) fact = fact * i; No semicolon after last expression All are expressions. initial  expr1 condition  expr2 iteration  expr3

How it works? – “expression1” is used to initialize some variable (called index) that controls the looping action. – “expression2” represents a condition that must be true for the loop to continue. – “expression3” is used to alter the value of the index initially assigned by “expression1”. Spring Semester 2013Programming and Data Structure38 int digit; for (digit=0; digit<=9; digit++) printf (“%d \n”, digit);

How it works? – “expression1” is used to initialize some variable (called index) that controls the looping action. – “expression2” represents a condition that must be true for the loop to continue. – “expression3” is used to alter the value of the index initially assigned by “expression1”. Spring Semester 2013Programming and Data Structure39

Spring Semester 2013Programming and Data Structure40 expression2 statement(s) true false Single-entry / single-exit structure expression1 expression3 int digit; for (digit=0; digit<=9; digit++) printf (“%d \n”, digit);

The For Structure: Notes and Observations Arithmetic expressions – Initialization, loop-continuation, and increment can contain arithmetic expressions. – e.g. Let x = 2 and y = 10 for ( j = x; j <= 4 * x * y; j += y / x ) is equivalent to for ( j = 2; j <= 80; j += 5 ) "Increment" may be negative (decrement) If loop continuation condition initially false – Body of for structure not performed – Control proceeds with statement after for structure Spring Semester 2013Programming and Data Structure41 Initialization Loop continuation Increment

for :: Examples int fact = 1, i; for (i=1; i<=10; i++) fact = fact * i; int sum = 0, N, count; scanf (“%d”, &N); for (i=1; i<=N, i++) sum = sum + i * i; printf (“%d \n”, sum); Spring Semester 2013Programming and Data Structure42

The comma operator – We can give several statements separated by commas in place of “expression1”, “expression2”, and “expression3”. for (fact=1, i=1; i<=10; i++) fact = fact * i; for (sum=0, i=1; i<=N, i++) sum = sum + i * i; Spring Semester 2013Programming and Data Structure43

Specifying “Infinite Loop” while (1) { statements } for (; ;) { statements } Spring Semester 2013Programming and Data Structure44 do { statements } while (1);

break Statement Break out of the loop { } – can use with while do while for switch – does not work with if {} else {} Spring Semester 2013Programming and Data Structure45 Causes immediate exit from a while, for, do/while or switch structure Program execution continues with the first statement after the structure Common uses of the break statement Escape early from a loop Skip the remainder of a switch structure

A Complete Example #include main() { int fact, i; fact = 1; i = 1; while ( i 100*/ fact = fact * i; if ( fact > 100 ) { printf ("Factorial of %d above 100", i); break;/* break out of the while loop */ } i ++ ; } Spring Semester 2013Programming and Data Structure46

continue Statement continue – Skips the remaining statements in the body of a while, for or do/while structure Proceeds with the next iteration of the loop – while and do/while Loop-continuation test is evaluated immediately after the continue statement is executed – for structure Increment expression is executed, then the loop-continuation test is evaluated. expression3 is evaluated, then expression2 is evaluated. Spring Semester 2013Programming and Data Structure47

An Example with “break” & “continue” fact = 1; i = 1;/* a program to calculate 10 ! while (1) { fact = fact * i; i ++ ; if ( i<10 ) continue;/* not done yet ! Go to loop and perform next iteration*/ break; } Spring Semester 2013Programming and Data Structure48

Some Examples Spring Semester 2013Programming and Data Structure49

Example 1: Test if a number is prime or not #include main() { int n, i=2; scanf (“%d”, &n); while (i < n) { if (n % i == 0) { printf (“%d is not a prime \n”, n); exit; } i++; } printf (“%d is a prime \n”, n); } Spring Semester 2013Programming and Data Structure50

More efficient?? #include main() { int n, i=3; scanf (“%d”, &n); while (i < sqrt(n)) { if (n % i == 0) { printf (“%d is not a prime \n”, n); exit; } i = i + 2; } printf (“%d is a prime \n”, n); } Spring Semester 2013Programming and Data Structure51

Example 2: Find the sum of digits of a number #include main() { intn, sum=0; scanf (“%d”, &n); while (n != 0) { sum = sum + (n % 10); n = n / 10; } printf (“The sum of digits of the number is %d \n”, sum); } Spring Semester 2013Programming and Data Structure52

Example 3: Decimal to binary conversion #include main() { int dec; scanf (“%d”, &dec); do { printf (“%2d”, (dec % 2)); dec = dec / 2; } while (dec != 0); printf (“\n”); } Spring Semester 2013Programming and Data Structure53

Example 4: Compute GCD of two numbers #include main() { int A, B, temp; scanf (%d %d”, &A, &B); if (A > B) { temp = A; A = B; B = temp; } while ((B % A) != 0) { temp = B % A; B = A; A = temp; } printf (“The GCD is %d”, A); } Spring Semester 2013Programming and Data Structure54 12 ) 45 ( ) 12 ( ) 9 ( Initial: A=12, B=45 Iteration 1: temp=9, B=12,A=9 Iteration 2: temp=3, B=9, A=3 B % A = 0  GCD is 3

Shortcuts in Assignments Additional assignment operators: + =, – =, * =, / =, % = a += b is equivalent to a = a + b a *= (b+10) is equivalent to a = a * (b + 10) and so on. Spring Semester 2013Programming and Data Structure55

More about scanf and printf Spring Semester 2013Programming and Data Structure56

Entering input data :: scanf function General syntax: scanf (control string, arg1, arg2, …, argn); – “control string refers to a string typically containing data types of the arguments to be read in; – the arguments arg1, arg2, … represent pointers to data items in memory. Example: scanf (%d %f %c”, &a, &average, &type); The control string consists of individual groups of characters, with one character group for each input data item. – ‘%’ sign, followed by a conversion character. Spring Semester 2013Programming and Data Structure57

– Commonly used conversion characters: c single character ddecimal integer ffloating-point number sstring terminated by null character Xhexadecimal integer – We can also specify the maximum field-width of a data item, by specifying a number indicating the field width before the conversion character. Example: scanf (“%3d %5d”, &a, &b); Spring Semester 2013Programming and Data Structure58

Writing output data :: printf function General syntax: printf (control string, arg1, arg2, …, argn); – “control string refers to a string containing formatting information and data types of the arguments to be output; – the arguments arg1, arg2, … represent the individual output data items. The conversion characters are the same as in scanf. Spring Semester 2013Programming and Data Structure59

Examples: printf (“The average of %d and %d is %f”, a, b, avg); printf (“Hello \nGood \nMorning \n”); printf (“%3d %3d %5d”, a, b, a*b+2); printf (“%7.2f %5.1f”, x, y); Many more options are available: – Read from the book. – Practice them in the lab. String I/O: – Will be covered later in the class. Spring Semester 2013Programming and Data Structure60