University of Washington Computer Programming I Lecture 6 Conditionals 2000 UW CSE E 1 Overview Concepts this lecture Conditional execution if statement Conditional expressions Relational and logical operators Compound statements E 2 Related Reading Read Sections 4 1 4 5 4 7 4 9 4 1 Control structure preview 4 2 Relational and logical operators 4 3 if statements 4 4 Compound statements 4 5 Example 4 7 Nested if statements E 3 Control Flow Control flow is the order in which statements are executed Until now control flow has been sequential the next statement executed is the next one that appears in order in the C program E 4 Conditional Control Flow choosing which of two or more statements to execute before continuing choosing whether or not to to skip a statement before continuing E 5 Conditional Execution A conditional statement allows the computer to choose an execution path depending on the value of a variable or expression if the withdrawal is more than the bank balance then print an error if today is my birthday then add one to my age if using whole milk add two eggs otherwise add three eggs E 6 Conditional if Statement The statement is executed if and only if the condition is true if withdrawalAmount balance if condition statement printf Not enough money n if temperature 98 6 printf You have a fever n if x 100 x x 1 E 7 Conditional Flow Chart if x 100 x x 1 y y 1 x 100 yes x x 1 no y y 1 E 8 Conditions In parentheses is a condition also called a logical or Boolean expression Made up of variables constants arithmetic expressions and the relational operators Math symbols in C E 9 Conditional Expressions air temperature 80 0 98 6 body temperature marital status M divisor 0 Such expressions are used in if statements and numerous other places in C E 10 Value of Conditional Expressions What is the value of a conditional expression Answer we think of it as TRUE or FALSE E 11 Value of Conditional Expressions What is the value of a conditional expression Answer we think of it as TRUE or FALSE Under the hood in C it s really an integer FALSE is 0 and 0 is FALSE TRUE is any value other than 0 and non zero is TRUE 1 is the result of a true relational operator e g 4 7 evaluates to 1 E 12 Complex Conditionals if I have at least 15 or you have at least 15 then we can go to the movies if the temperature is below 32 degrees and it s raining then it s snowing if it s not the case that it s Saturday or Sunday then it s a work day E 13 Complex Conditionals in C We use Boolean operators to code complex conditionals in C We ll say lots more about this later For now here is some information for reference Boolean operators define define TRUE FALSE and or not 1 0 if myMoney 15 0 yourMoney 15 0 canGoToMovies TRUE E 14 Multiple Actions What if there s more than one conditional action If your temperature is high then you have a fever and should take two aspirin and go to bed and call in sick tomorrow E 15 Compound Statement Groups together statements so that they are treated as a single statement statement1 statement2 Also called a block Highly useful Not just in conditionals but many places in C E 16 Using a Compound Statement if temperature 98 6 printf You have a fever n aspirin aspirin 2 printf Go to bed n printf Sleep in tomorrow n E 17 Combining and Substituting Statements You may use a compound statement anywhere that a single statement may be used Anywhere that a statement is allowed in C any kind of statement can be used A compound statement can contain any number of statements including 0 Among other things these principles imply that compound statements can be nested to any depth E 18 Another Compound Example Cash machine program fragment if balance withdrawal balance balance withdrawal dispense funds withdrawal What if omitted What if omitted E 19 Finding Absolute Value 1 Problem Compute the absolute value x of x and put the answer in variable abs Here are three solutions all correct if x 0 abs x if x 0 abs x E 20 Finding Absolute Value 2 Problem Compute the absolute value x of x and put the answer in variable abs Here are three solutions all correct if x 0 abs x abs x if x 0 abs x if x 0 abs x E 21 Finding Absolute Value 3 Problem Compute the absolute value x of x and put the answer in variable abs Here are three solutions all correct if x 0 abs x abs x if x 0 abs x if x 0 abs x if x 0 abs x else abs x E 22 if else Print error message only if the condition is false if balance withdrawal balance balance withdrawal dispense funds withdrawal no here else printf Insufficient Funds n E 23 if else Control Flow yes balance withdrawal balance balance withdrawal dispense funds withdrawal no printf No money n arrive here whether condition is TRUE or FALSE E 24 Nested if Statements define BILL SIZE 20 if balance withdrawal balance balance withdrawal dispense funds withdrawal else if balance BILL SIZE printf Try a smaller amount n else printf Go away n E 25 Nested ifs Part II if x 5 if y 5 printf Both are 5 n else printf x is 5 but y is not n else if y 5 printf y is 5 but x is not n else printf Neither is 5 n E 26 Tax Table Example Problem Print the tax based on income income 15 000 tax 0 15 000 30 000 18 30 000 50 000 22 50 000 100 000 28 100 000 31 E 27 Direct Solution if income 15000 printf No tax if income 15000 income 30000 printf 18 tax if income 30000 income 50000 printf 22 tax if income 50000 income 100000 printf 28 tax if income 100000 printf 31 tax E 28 Mutually exclusive conditions only one will be true Cascaded ifs if income 15000 printf No tax else if income 30000 printf 18 tax else if income 50000 printf 22 tax else if income 100000 printf 28 tax else printf 31 tax if income 15000 printf No tax else if income 30000 printf 18 tax else if income 50000 printf 22 tax else if income 100000 printf 28 tax else printf 31 tax Order is important Conditions are evaluated in order given E 29 Warning Danger Ahead The idea of conditional execution is natural intuitive and highly useful However Programs can get convoluted and hard to understand There are syntactic pitfalls to avoid E 30 Pitfalls of if Part I if x 10 printf x is 10 Bug is used instead of This is not a syntax error so the program can execute E 31 The World s Last …
View Full Document
Unlocking...