Chapter 7 Conditional Statements. 7.1 Conditional Expressions Conditions - compare the values of variables, constants and literals using one or more relational.

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

Dr. Yang, QingXiong (with slides borrowed from Dr. Yuen, Joe) LT3: Conditional Statements CS2311 Computer Programming.
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 4: Control Structures I (Selection)
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 4- 1.
If Statements. COMP104 If / Slide 2 Three Program Structures * Sequence - executable statements which the computer processes in the given order * Choice.
Copyright © 2012 Pearson Education, Inc. Chapter 4: Making Decisions.
Control Structures Control structures control the flow of program execution. 3 types of control structures: sequence, selection.
Chapter 4 Making Decisions
Starting Out with C++: Early Objects 5/e © 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5 th Edition Chapter 4 Making.
Quiz 1 Exam 1 Next Week. Nested if Statements if (myGrade >= 80) if (myGrade >= 90) cout
EGR 2261 Unit 4 Control Structures I: Selection  Read Malik, Chapter 4.  Homework #4 and Lab #4 due next week.  Quiz next week.
Announcements 1st homework is due on July 16, next Wednesday, at 19:00 Submit to SUCourse About the homework: Add the following at the end of your code.
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 4: Control Structures I (Selection)
Chapter 4: Control Structures I (Selection). Objectives In this chapter, you will: – Learn about control structures – Examine relational operators – Discover.
Control Structures – Selection Chapter 4 2 Chapter Topics  Control Structures  Relational Operators  Logical (Boolean) Operators  Logical Expressions.
Computer Science Department Relational Operators And Decisions.
More on Input Output Input Stream : A sequence of characters from an input device (like the keyboard) to the computer (the program running). Output Stream.
Liang, Introduction to Programming with C++, Second Edition, (c) 2010 Pearson Education, Inc. All rights reserved Chapter 3 Selections.
Dr. Yang, QingXiong (with slides borrowed from Dr. Yuen, Joe) LT3: Conditional Statements CS2311 Computer Programming.
Chapter 4: Control Structures I (Selection). Objectives In this chapter, you will: – Learn about control structures – Examine relational and logical operators.
1 Conditions Logical Expressions Selection Control Structures Chapter 5.
Copyright © 2012 Pearson Education, Inc. Chapter 4: Making Decisions.
Flow of Control Part 1: Selection
Making Decisions. 4.1 Relational Operators Used to compare numbers to determine relative order Operators: > Greater than < Less than >= Greater than.
CPS120: Introduction to Computer Science Decision Making in Programs.
Alternate Version of STARTING OUT WITH C++ 4 th Edition Chapter 4 Making Decisions.
Chapter 4 Making Decision Csc 125 C++ programming language Fall 2005.
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 4: Making Decisions.
1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.
Copyright 2003 Scott/Jones Publishing Making Decisions.
Chapter 7 Selection Dept of Computer Engineering Khon Kaen University.
Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved X1 Chapter 3 Control Statements.
Chapter 6 Mathematical Operations. 6.1 Mathematical Expressions In mathematics this expression is valid 0 = -4y + 5 It is invalid in programming Left.
Copyright © 2015, 2012, 2009 Pearson Education, Inc., Publishing as Addison-Wesley All rights reserved. Chapter 4: Making Decisions.
Chapter Making Decisions 4. Relational Operators 4.1.
Quiz 3 is due Friday September 18 th Lab 6 is going to be lab practical hursSept_10/exampleLabFinal/
CHAPTER 5 MAKING DECISION Hidayah Elias BFC2042 – Computer Programming.
Chapter 5: Control Structures I (Selection). Objectives In this chapter you will: Learn about control structures Examine relational and logical operators.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 4 Making Decisions.
Sections © Copyright by Pearson Education, Inc. All Rights Reserved.
Chapter 4 Literals, Variables and Constants. #Page2 4.1 Literals Any numeric literal starting with 0x specifies that the following is a hexadecimal value.
Programming Fundamentals1 Chapter 4 SELECTION STRUCTURES.
Chapter 4: Control Structures I (Selection). Objectives In this chapter, you will: – Learn about control structures – Examine relational and logical operators.
Fundamental Programming Fundamental Programming More Expressions and Data Types.
Variables  A piece of memory set aside to store data  When declared, the memory is given a name  by using the name, we can access the data that sits.
Copyright © 2015, 2012, 2009 Pearson Education, Inc., Publishing as Addison-Wesley All rights reserved. Chapter 4: Making Decisions 1.
Lecture 6 – Selection FTMK, UTeM – Sem /2014.
4 - Conditional Control Structures CHAPTER 4. Introduction A Program is usually not limited to a linear sequence of instructions. In real life, a programme.
Chapter 7 Conditional Statements. 7.1 Conditional Expressions Condition – any expression that evaluates to true/false value Relational operators are BINARY.
Selection (if-then-else) Programming Has 3 Types of Control: Sequential (normal): Control of Execution Proceeds One after the Other Selection (if-then-else):
Chapter 4: Control Structures I (Selection). Objectives In this chapter, you will: – Learn about control structures – Examine relational operators – Discover.
Chapter 3 Control Statements
Selection (also known as Branching) Jumail Bin Taliba by
Control Structures Combine individual statements into a single logical unit with one entry point and one exit point. Used to regulate the flow of execution.
Chapter 4: Making Decisions.
EGR 2261 Unit 4 Control Structures I: Selection
Chapter 3 Control Statements Lecturer: Mrs Rohani Hassan
Chapter 4: Making Decisions.
Control Structures – Selection
Expression Review what is the result and type of these expressions?
Chapter 4: Control Structures I (Selection)
Chapter 7 Conditional Statements
Chapter 4: Control Structures I (Selection)
© Copyright 2016 by Pearson Education, Inc. All Rights Reserved.
Module 3 Selection Structures 6/25/2019 CSE 1321 Module 3.
Controlling Program Flow
Presentation transcript:

Chapter 7 Conditional Statements

7.1 Conditional Expressions Conditions - compare the values of variables, constants and literals using one or more relational operators Binary operators - a variable, constant, or literal must appear on each side of the operator The comparison determines whether the expression is true or false

7.1.1 Relational Operators Relational OperatorDescription == Equality (be sure to use two equal signs) != Inequality < Less than > Greater than <= Less than or equal to >= Greater than or equal to Single equal sign ( = ) is an assignment Double equal sign ( == ) tests for equality

7.1.1 Relational Operators const int CONST_INT_EXP = 9; int int_exp1 = 0, int_exp2 = 5; float float_exp = 9.0; char char_exp = 'a'; bool result; result = int_exp1 == 0; // true result = int_exp2 >= int_exp1; // true result = int_exp1 > CONST_INT_EXP; // false result = float_exp == CONST_INT_EXP; // true result = char_exp <= int_exp1; // false result = int_exp1 != int_exp2; // true result = char_exp == 'a'; // true

7.1.1 Relational Operators // ILLEGAL OR MALFORMED CONDITIONS ---- result = int_exp1 < int_exp2 < float_exp; // Malformed condition. May or may not compile // depending on compiler used. Even if the // compiler will compile this condition, it // should NEVER be written in this manner. result = char_exp == "a"; // Illegal. Attempting to compare a character // to a string literal.

7.1.2 Logical Operators Logical operators - combine multiple relational operators into a larger composite condition Operators: || (OR) - binary operator False value only if the conditions on each side of the operator are false

7.1.2 Logical Operators Operators: (continued) && (AND) - binary operator Results in a true value only if the condition on both sides of the operator are true ! (NOT) - unary operator Reverses logic of the single condition

7.1.2 Logical Operators Truth table - displays Boolean results produced when the operator is applied to specified operands Logical AND and OR truth table Condition 1Condition 2 && Result || Result true false true falsetruefalsetrue false

7.1.2 Logical Operators Logical NOT truth table Order of precedence - && operator evaluated before the || operator The ! operator - highest level of precedence of all logical operators and is higher than the relational operators Condition ! Result truefalse true

7.1.2 Logical Operators Misc Information: Parentheses change the precedence Parentheses can help clarify complicated conditions Short-circuit evaluation - once the outcome of condition can be determined, evaluation ends

7.1.2 Logical Operators int int_exp1 = 0, int_exp2 = 5; float float_exp = 9.0; char char_exp = 'a'; const int CONST_INT_EXP = 9; bool result; result = int_exp1 < int_exp2 && float_exp == 9.0; result = int_exp1 > CONST_INT_EXP || float_exp == 9.0; // true result = !(float_exp == 9.0 || int_exp1 > CONST_INT_EXP);// false // Short-Circuit Evaluation result = float_exp == 9.0 || int_exp1 > CONST_INT_EXP; // true Various logical operators

7.2 The if Statement if statement - uses conditions to determine a specific action Syntax: if ( )

7.2 The if Statement - any valid expression, either built from relational and logical operators or from evaluation of a single variable zero is false while any non-zero value is considered true - any valid C++ statement multiple statements must be enclosed in curly braces { }

7.2 The if Statement if statement - uses conditions to determine a specific action // Example 1 if ( test >= 80 && test < 90 ) cout << "You have earned a B" << endl; // Action block // Example 2 if ( test >= 90 ) { // Start of the action block cout << "You have earned an A" << endl; cout << "Excellent work!" << endl; } // End of the action block // Example 3 if ( test >= 70 && test < 80 ) {// Start of the action block cout << "You have earned a C" << endl; } // End of the action block

7.2.1 The else Statement else statement - optional part of if statement Can’t stand alone Must be associated with an if if ( ) else

7.2.1 The else Statement else no condition or expression associated with it relies on results of the condition associated with the if executes action(s) only if the condition is false action can contain one or more statements if more than one statement, the action must be enclosed in curly braces

7.2.1 The else Statement if ( grade >= 60 ) pass = true; else { pass = false; cout << "Hope you do better next time" << endl; } else Example

7.2.1 The Nested if Nested if - embedding another if in action block of the else if ( avg >= 90 ) cout << "A" << endl; else if ( avg >= 80 ) cout << "B" << endl;

7.2.1 The Nested if Nested if indentation can cause the code to become difficult to read if ( ) else if ( ) else if ( )... else // Optional

7.2.1 The Nested if Inefficient if statement if ( avg >= 90 ) cout << "A" << endl; if ( avg >= 80 && avg < 90 ) cout << "B" << endl; if ( avg >= 70 && avg < 80 ) cout << "C" << endl; if ( avg >= 60 && avg < 70 ) cout << "D" << endl; if ( avg < 60 ) cout << "F" << endl;

7.2.1 The Nested if Using else if statements is much more efficient than using separate if statements else if statement if ( avg >= 90 ) cout << "A" << endl; else if ( avg >= 80 ) cout << "B" << endl; else if ( avg >= 70 ) cout << "C" << endl; else if ( avg >= 60 ) cout << "D" << endl; else cout << "F" << endl;

7.2.1 The Nested if Flow of an if statement

7.2.1 The Nested if Nested control statement - has another control statement in its action block Map most nested if statement with nearest unmatched else if ( gpa >= 3.75 ) if ( credits > 25 ) if ( money < ) { scholarship = 5000; cout << "Way to go!" << endl; } else scholarship = 2000; else scholarship = 1000; else { scholarship = 0; cout << "You're on your own." << endl; }

7.3 Variable Scope Scope of a variable – determines: What code can access or change the variable How long the variable exists or lives

7.3 Variable Scope Below, var_a and var_b defined within the scope of the block Both accessible within the block where defined Final line generates an error message - var_b is not defined { int var_a = 5, var_b = 10; var_a++; cout << "var_a: " << var_a << endl; } cout << "var_b: " << var_b; // Error: undeclared // identifier var_b

7.3 Variable Scope Local scope – variables or constants declared within braces

7.3 Variable Scope Constant PI and variable global_area - physically declared outside of function - placed at the global level #include using std::cout; using std::endl; #include // Needed for pow const float PI = F;// global scope float global_area = 0;// global scope int main() { float radius = 5;// local scope global_area = static_cast ( PI * pow( radius, 2 ) ); cout << global_area << " sq. in." << endl; return 0; } // Output sq. in.

7.3 Variable Scope Any code within the file can access PI or global_area #include using std::cout; using std::endl; #include // Needed for pow const float PI = F;// global scope float global_area = 0;// global scope int main() { float radius = 5;// local scope global_area = static_cast (PI * pow(radius, 2)); cout << global_area << " sq. in." << endl; return 0; } // Output sq. in.

7.3 Variable Scope Global variables - automatically initialized to 0 Avoid global variables (i.e., global_area ) #include using std::cout; using std::endl; #include // Needed for pow const float PI = F;// global scope float global_area = 0;// global scope int main() { float radius = 5;// local scope global_area = static_cast (PI * pow(radius, 2)); cout << global_area << " sq. in." << endl; return 0; } // Output sq. in.

7.4 The switch Statement switch statement - another form of conditional statement Also called a selection statement Checks only for equality and only for one variable

7.4 The switch Statement Works well for checking a variable for limited set of values Only works with ordinal data types Ordinal data types - can be translated into an integer to provide a finite, known, number set Examples include int, bool, char, and long

7.4 The switch Statement General form of the switch statement: switch( ) { // Required case : break; case : break;... default: // Optional }// Required When first line is encountered, value of the variable determined Execution jumps to the case which corresponds to the value of the variable being examined Execution continues until either a break statement is encountered or to the end of switch

7.4 The switch Statement break statement - stops execution of the control structure prematurely Stops multiple case statements from being executed Many believe poor programming to use outside the context of the switch statement

7.4 The switch Statement default statement - executed if value of the variable doesn’t match any of previous cases Type of catch all or “case else” Technically can use the default case in any position Should physically be the last one in the switch statement

7.4 The switch Statement int menu_item = 0;... switch ( menu_item ) { case 1: // Using literal values cout << "You have chosen option 1." << endl; break; case 2: cout << "You have chosen option 2." << endl; break; case 3: cout << "You have chosen option 3." << endl; break; default: cout << "Invalid menu option." << endl; }

7.4 The switch Statement const short GREEN = 0; const short YELLOW = 1; const short RED = 2; short light_color = GREEN; switch ( light_color ) { case GREEN: // Using constants cout << "Go!" << endl; break; case YELLOW: // Let fall through case RED: cout << "Stop!"; cout << "Proceed when light is green." << endl; break; default: cout << "Stop!"; cout << "Power is out!" << endl; }

7.4 The switch Statement char letter_grade; cout << "Enter letter grade: "; cin >> letter_grade; switch ( letter_grade ) { case 'A': // Using character literal values cout << "Excellent!" << endl; break; case 'B': cout << "Above average." << endl; break; case 'C': cout << "Average." << endl; break; case 'D': cout << "Below average." << endl; break; case 'F': cout << "Failed!" << endl; break; default: cout << "Invalid letter grade." << endl; }

7.4 The switch Statement One of the most common uses of switch statement is in menu driven programs Student Grade Program - Main Menu - 1. Enter name 2. Enter test scores 3. Display test scores 9. Exit Please enter your choice from the list above:

7.5 Conditional Operator Conditional operator - considered a ternary operator, meaning it has three operands Syntax: ? :

7.5 Conditional Operator One of the expressions is returned based upon the evaluation of the condition int a = 5, b = 0; int larger = a > b ? a : b; cout << larger << endl; // Output 5

7.5 Conditional Operator Equivalent if statement to code on previous page int a = 5, b = 0; int larger; if ( a > b ) larger = a; else larger = b;

7.5 Conditional Operator More challenging conditional operator example short hour = 9, minute = 10, second = 5; cout << (hour < 10 ? "0" : "") << hour << ":" << (minute < 10 ? "0" : "") << minute << ":" << (second < 10 ? "0" : "") << second << endl; // Output 09:10:05 Empty quotes above tell cout to print nothing if the condition is false (i.e. hour is 10 or greater)

7.7 C – The Differences Previous versions of C did not have a Boolean data type There isn’t a predefined true or false All relational operators return either a zero for false or a non-zero value, usually one, for true

7.7 C – The Differences C programmers often create their own Boolean data type as shown below #define BOOL int #define TRUE 1 #define FALSE 0 int main( void ) { BOOL done = FALSE; return 0; } The C99 version of the ANSI Standard includes a Boolean data type Not currently supported by Visual Studio