Relational and Logical Operators

Slides:



Advertisements
Similar presentations
Decisions If statements in C.
Advertisements

Slide 1 Summary Two basic concepts: variables and assignments Some C++ practical issues: division rule, operator precedence  Sequential structure of a.
5-1 Flow of Control Recitation-01/25/2008  CS 180  Department of Computer Science  Purdue University.
1 9/24/07CS150 Introduction to Computer Science 1 Relational Operators and the If Statement.
Conditions What if?. Flow of Control The order of statement execution is called the flow of control Unless specified otherwise, the order of statement.
ECE122 L7: Conditional Statements February 20, 2007 ECE 122 Engineering Problem Solving with Java Lecture 7 Conditional Statements.
1 CS150 Introduction to Computer Science 1 Relational Operators and the If Statement 9/22/08.
Boolean Expressions and If Flow of Control / Conditional Statements The if Statement Logical Operators The else Clause Block statements Nested if statements.
Chapter 5 Conditionals and Loops. © 2004 Pearson Addison-Wesley. All rights reserved2/33 Conditionals and Loops Now we will examine programming statements.
Spring 2005, Gülcihan Özdemir Dağ Lecture 3, Page 1 BIL104E: Introduction to Scientific and Engineering Computing, Spring Lecture 3 Outline 3.1 Introduction.
CMSC 104, Version 8/061L11Relational&LogicalOps.ppt Relational and Logical Operators Topics Relational Operators and Expressions The if Statement The if-else.
Programming in Java (COP 2250) Lecture 11 Chengyong Yang Fall, 2005.
1 Lecture 5: Selection Structures. Outline 2  Control Structures  Conditions  Relational Operators  Logical Operators  if statements  Two-Alternatives.
Exam 2 – Nov 18th Room ACIV 008. Project 2 Update  Your code needs to use loops to create the multiplication table. Hint: use nested for loop (Lecture.
Rational Expressions and selection structures Relational operators Logical operators Selection structures.
Flow of Control Part 1: Selection
Instructor: Alexander Stoytchev CprE 185: Intro to Problem Solving (using C)
Pseudocode When designing an ALGORITHM to solve a problem, Pseudocode, can be used. –Artificial, informal language used to develop algorithms –Similar.
Lecture 2 Control Structure. Relational Operators -- From the previous lecture Relational Operator Meaning == is equal to < is less than > is greater.
Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved X1 Chapter 3 Control Statements.
CMSC 104, Version 9/011 Relational and Logical Operators Topics Relational Operators and Expressions The if Statement The if-else Statement Nesting of.
Programming Language C++ Lecture 3. Control Structures  C++ provides control structures that serve to specify what has to be done to perform our program.
Decision making If.. else statement.
Chapter 3 Selection Statements
CNG 140 C Programming (Lecture set 3)
UMBC CMSC 104 – Section 01, Fall 2016
- Standard C Statements
Control Statements: Part 1
EGR 2261 Unit 4 Control Structures I: Selection
Operator Precedence Operators Precedence Parentheses () unary
CSC113: Computer Programming (Theory = 03, Lab = 01)
Boolean Expressions and If
Chapter 3 Control Statements Lecturer: Mrs Rohani Hassan
Topics The if Statement The if-else Statement Comparing Strings
Boolean Expressions & the ‘if’ Statement
Programming Fundamentals
JavaScript: Control Statements I
Relational & Logical Operators
Topics The if Statement The if-else Statement Comparing Strings
Relational and Logical Operators
Structured Program
Relational and Logical Operators
3 Control Statements:.
The while Looping Structure
Summary Two basic concepts: variables and assignments Basic types:
Relational & Logical Operators, if and switch Statements
Chapter 4: Control Structures I (Selection)
Relational and Logical Operators
Logic of an if statement
Chapter 3: Selection Structures: Making Decisions
Boolean Expressions to Make Comparisons
Chapter 3: Selection Structures: Making Decisions
Control Statements Paritosh Srivastava.
Relational and Logical Operators
More Loops Topics Relational Operators Logical Operators for Loops.
CprE 185: Intro to Problem Solving (using C)
Chap 7. Advanced Control Statements in Java
Using C++ Arithmetic Operators and Control Structures
OPERATORS in C Programming
Dale Roberts, Lecturer IUPUI
Conditionals and Loops
The while Looping Structure
Relational and Logical Operators
Selection Control Structure
Module 3 Selection Structures 6/25/2019 CSE 1321 Module 3.
The while Looping Structure
Lecture 9: Implementing Complex Logic
OPERATORS in C Programming
Presentation transcript:

Relational and Logical Operators Topics Relational Operators and Expressions The if Statement The if-else Statement Nesting of if-else Statements Logical Operators and Expressions Truth Tables Reading Sections 2.6, 4.10, 4.11

Relational Operators Relational expressions evaluate to the integer < less than > greater than <= less than or equal to >= greater than or equal to == is equal to != is not equal to Relational expressions evaluate to the integer values 1 (true) or 0 (false). All of these operators are called binary operators because they take two expressions as operands.

Practice with Relational Expressions int a = 1, b = 2, c = 3 ; Expression Value Expression Value a < c a + b >= c b <= c a + b == c c <= a a != b a > b a + b != c b >= c

Arithmetic Expressions: True or False Arithmetic expressions evaluate to numeric values. An arithmetic expression that has a value of zero is false. An arithmetic expression that has a value other than zero is true.

Practice with Arithmetic Expressions int a = 1, b = 2, c = 3 ; float x = 3.33, y = 6.66 ; Expression Numeric Value True/False a + b b - 2 * a c - b - a c - a y - x y - 2 * x

Review: Structured Programming All programs can be written in terms of only three control structures The sequence structure Unless otherwise directed, the statements are executed in the order in which they are written. The selection structure Used to choose among alternative courses of action. The repetition structure Allows an action to be repeated while some condition remains true.

Selection: the if statement The if statement is a control structure that allows a program to make a decision based on the truth or falsity of some statement of fact called a condition. A condition is an expression that generates a zero(false) or a non-zero(true): ( x = = y ) ( x != y ) <------- equality conditions ( x > y ) ( x < y ) <------- Relational conditions ( x >= y ) ( x <= y )

Selection: the if statement if ( condition ) { statement(s) /* body of the if statement */ } The braces are not required if the body contains only a single statement. However, they are a good idea and are required by the 104 C Coding Standards.

Examples if ( age >= 18 ) { printf( “ Vote! \n ” ) ; } if ( value == 0 ) printf (“The value you entered was zero.\n”) ; printf (“Please try again.\n”) ;

Good Programming Practice Always place braces around the body of an if statement. Advantages: Easier to read Will not forget to add the braces if you go back and add a second statement to the body Less likely to make a semantic error Indent the body of the if statement 3 to 5 spaces -- be consistent!

Selection: the if-else statement if ( condition ) { statement(s) /* the if clause */ } else statement(s) /* the else clause */

Example if ( age >= 18 ) { printf( “ Vote! \n ” ) ; } else printf( “ Maybe next time! \n ” ) ;

Example if ( value == 0 ) { printf (“The value you entered was zero. \n ”) ; printf(“Please try again. \n ”) ; } else printf (“Value = %d. \n ”, value) ;

Good Programming Practice Always place braces around the bodies of the if and else clauses of an if-else statement. Advantages: Easier to read Will not forget to add the braces if you go back and add a second statement to the clause Less likely to make a semantic error Indent the bodies of the if and else clauses 3 to 5 spaces -- be consistent!

Nesting of if-else Statements if ( condition1 ) { statement(s) } else if ( condition2 ) . . . /* more else clauses may be here */ else statement(s) /* the default case */

Example if ( value == 0 ) { printf ( “The value you entered was zero. \n ” ) ; } else if ( value < 0 ) printf ( “ %d is negative. \n ” , value) ; else printf ( “ %d is positive. \n ” , value) ;

Gotcha! = versus == int a = 2 ; if ( a = 1 ) /* semantic (logic) error! */ { printf ( “ a is one \n ” ) ; } else if ( a == 2 ) printf ( “ a is two \n ” ) ; else printf ( “ a is %d \n ”, a ) ;

Gotcha (con’t) The statement if (a = 1) is syntactically correct, so no error message will be produced. (Some compilers will produce a warning.) However, a semantic (logic) error will occur. An assignment expression has a value -- the value being assigned. In this case the value being assigned is 1, which is true. If the value being assigned was 0, then the expression would evaluate to 0, which is false. This is a VERY common error. So, if your if-else structure always executes the same, look for this typographical error.

Logical Operators So far we have seen only simple conditions. if ( count > 10 ) . . . Sometimes we need to test multiple conditions in order to make a decision. Logical operators are used for combining simple conditions to make complex conditions. && is AND if ( x > 5 && y < 6 ) || is OR if ( z == 0 || x > 10 ) ! is NOT if (! (bob > 42) )

Example Use of && if ( age < 1 && gender == ‘m’ ) { printf ( “ Infant boy \n ” ) ; }

Truth Table for && Expression1 Expression2 Expression1 && Expression2 0 0 0 0 nonzero 0 nonzero 0 0 nonzero nonzero 1 Exp1 && Exp2 && … && Expn will evaluate to 1 (true) only if ALL subconditions are true.

Example Use of || if (grade == ‘D’ || grade == ‘F’) { printf ( “ See you next semester! \n ” ) ; }

Truth Table for || Expression1 Expression2 Expression1 || Expression2 0 0 0 0 nonzero 1 nonzero 0 1 nonzero nonzero 1 Exp1 | | Exp2 | | … | | Expn will evaluate to 1 (true) if only ONE subcondition is true.

Example Use of ! if ( ! (x == 2) ) /* same as (x != 2) */ { printf( “ x is not equal to 2. \n ” ) ; }

Truth Table for ! Expression ! Expression 0 1 nonzero 0

Operator Precedence and Associativity Precedence Associativity ( ) left to right/inside-out ++ -- ! + (unary) - (unary) (type) right to left * / % left to right + (addition) - (subtraction) left to right < <= > >= left ot right == != left to right && left to right || left to right = += -= *= /= %= right to left , (comma) right to left

Some Practice Expressions int a = 1, b = 0, c = 7; Expression Numeric Value True/False a b c a + b a && b a || b !c !!c a && !b a < b && b < c a > b && b < c a >= b || b > c

Sample Quiz Given int a = 5, b = 7, c = 17 ; evaluate each expression as True or False. 1. c / b == 2 2. c % b <= a % b 3. b + c / a != c - a 4. (b < c) && (c == 7) 5. (c + 1 - b == 0) || (b = 5)

Sample Quiz Which is printed? int x, y; X = 0 ; y = 1 ; if ( x < y | | y < 5 && x = = 3 ) { printf (“True \n”); else printf(“False \n “); Which is printed?