lecture 7: if-else if-else statements
DESCRIPTION
CSC 107 – Programming For Science. Lecture 7: if-else if-else Statements. if (…) statement. First evaluates expression in parenthesis If expression is true , executes next statement Skips over the statement , when expression is false - PowerPoint PPT PresentationTRANSCRIPT
LECTURE 7:IF-ELSE IF-ELSE STATEMENTS
CSC 107 – Programming For Science
if (…) statement
First evaluates expression in parenthesis If expression is true, executes next
statement Skips over the statement, when expression is
falseint hst = 30, dc = 27;bool gang = (hst > 12) && (dc == 27); if (nyc == dc) cout << “You lie" << endl;if (!gang) cout << "That ain't right." << endl;if (dc > 20); cout << "Huh?"
if (…) statement
First evaluates expression in parenthesis
If expression is true, executes next statement Skips over the statement, when expression
is false This leads to one very common bug
; is statement (a boring statement, but…)
if (dc > 20);cout << "Huh?"
I Want More!
Add opening brace ({) after closing parenthesis Can now write all statements to execute
Add closing brace (}) to show where if ends If expression false, execution restarts at
that point
if (sqrt(x) == 3.0) { cout << "root of x = 3" << endl; cout << "So, x = 9" << endl;}
else statement
Often want to perform one of two actions Execute some statements when condition is
true But when it is false, do some other work Continue as normal afterward, no matter
the path In these cases, can use if-else
statement else must come immediately after if's ;
or } Like if, else should always have {}
Cannot have else without if to start process In C++, there is no problem with if & no else
falsetrue
if - else Examples
if (value > 0) { cout << "Its positive" << endl;} else { value = abs(value);}
if ((year % 4 == 0) && ((year % 100) != 0)) { daysInYear = 366; cout << "Not quite right, but close enough"; cout << endl; leapYear = true;} else { leapYear = false; daysInYear = 365;}
Many Choices
May want to choose from many possibilities
Many Choices
May want to choose from many possibilities Could nest if – else statements inside one anotherif (a > 3) { cout << "a greater than 3" << endl;} else { if (b > 10) { cout << "b greater than 10" << endl; } else { if (c == -23) { cout << "c is equal to -23" << endl; } else { cout << "This really sucks" << endl; cout << "Sorry its stupid" << endl; } }}
Many Choices
May want to choose from many possibilities Could nest if – else statements inside one
another Or easier & nicer if – else if – else statementif (a > 3) { cout << "a greater than 3" << endl;} else if (b > 10) { cout << "b greater than 10" << endl;} else if (c == -23) { cout << "c is equal to -23" << endl;} else { cout << "This really sucks" << endl; cout << "Sorry its stupid" << endl;}
if – else if – else Usage
Must begin with if statement at the start This is required; what would we be saying else to?
Only required part of this entire process Can then have zero or more else ifs
Tests can be anything; do not have to be related
Until one is true, will be examined one-by-one
Execute 1st clause where true expression is found
Only at the very end can have else clause If nothing else matches then else is
executed
if – else if – else Example
if (wealth > 1000000) { cout << "Can I borrow a buck?" << endl;} else if (wealth > 100000) { cout << "Wow, you're comfortable" << endl;} else { cout << "Government bailout!" << endl;} else if (wealth > -100000) { cout << "File for bankruptcy" << endl;} else if (wealth > 10000) { cout << "Could be worse" << endl;} else if (wealth > 0) { cout << "Good luck" << endl;}
if – else if – else Example
if (wealth > 1000000) { cout << "Can I borrow a buck?" << endl;} else if (wealth > 100000) { cout << "Wow, you're comfortable" << endl;} else { cout << "Government bailout!" << endl;} else if (wealth > -100000) { cout << "File for bankruptcy" << endl;} else if (wealth > 10000) { cout << "Could be worse" << endl;} else if (wealth > 0) { cout << "Good luck" << endl;}
if – else if – else Example
if (wealth > 1000000) { cout << "Can I borrow a buck?" << endl;} else if (wealth > 100000) { cout << "Wow, you're comfortable" << endl;} else if (wealth > -100000) { cout << "File for bankruptcy" << endl;} else if (wealth > 10000) { cout << "Could be worse" << endl;} else if (wealth > 0) { cout << "Good luck" << endl;} else { cout << "Government bailout!" << endl;}
if – else if – else Example
if (wealth > 1000000) { cout << "Can I borrow a buck?" << endl;} else if (wealth > 100000) { cout << "Wow, you're comfortable" << endl;} else if (wealth > -100000) { cout << "File for bankruptcy" << endl;} else if (wealth > 10000) { cout << "Could be worse" << endl;} else if (wealth > 0) { cout << "Good luck" << endl;} else { cout << "Government bailout!" << endl;}
if – else if – else Example
if (wealth > 1000000) { cout << "Can I borrow a buck?" << endl;} else if (wealth > 100000) { cout << "Wow, you're comfortable" << endl;} else if (wealth > 10000) { cout << "Could be worse" << endl;} else if (wealth > 0) { cout << "Good luck" << endl;} else if (wealth > -100000) { cout << "File for bankruptcy" << endl;} else { cout << "Government bailout!" << endl;}
Spacing in a Program
C++ ignores spaces in a program This also means where newlines placed
ignored #define & text in quotes major exceptions
to rule This can lead to interesting code
choices
Coding Style
Use consistent size to indent (I use 2 spaces) Not required, but makes it much easier to
read code Indent code within braces ({}) to show
structure If line could or does contain { add to
indentation Decrease indentation each } should be on a
line if, else if, or else line has opening
brace Always use braces to prevent having to fix
bugs Limit space, closing brace on else/else if
line Closing brace on own line otherwise (like at
end)
Coding Style Example
#include <iostream>using namespace std;
int main(void) { int dcScore = 27, hstScore = 30; if (dcScore > hstScore) { cout << "Prof. Hertz happy" << endl; cout << "His team won" << endl; } else { cout << "His team lost." << endl; cout << "He is sad"; dcScore += 100; if (dcScore < hstScore) { cout << "Ouch. That's bad." <<endl; } } cout << "And now code continues" << endl; return 0;}
Coding Style Example
#include <iostream>using namespace std;
int main(void) { int dcScore = 27, hstScore = 30; if (dcScore > hstScore) { cout << "Prof. Hertz happy" << endl; cout << "His team won" << endl; } else { cout << "His team lost." << endl; cout << "He is sad"; dcScore += 100; if (dcScore < hstScore) { cout << "Ouch. That's bad." <<endl; } } cout << "And now code continues" << endl; return 0;}
Coding Style Example
#include <iostream>using namespace std;
int main(void) { int dcScore = 27, hstScore = 30; if (dcScore > hstScore) { cout << "Prof. Hertz happy" << endl; cout << "His team won" << endl; } else { cout << "His team lost." << endl; cout << "He is sad"; dcScore += 100; if (dcScore < hstScore) { cout << "Ouch. That's bad." <<endl; } } cout << "And now code continues" << endl; return 0;}
Coding Style Example
#include <iostream>using namespace std;
int main(void) { int dcScore = 27, hstScore = 30; if (dcScore > hstScore) { cout << "Prof. Hertz happy" << endl; cout << "His team won" << endl; } else { cout << "His team lost." << endl; cout << "He is sad"; dcScore += 100; if (dcScore < hstScore) { cout << "Ouch. That's bad." <<endl; } } cout << "And now code continues" << endl; return 0;}
Coding Style Example
#include <iostream>using namespace std;
int main(void) { int dcScore = 27, hstScore = 30; if (dcScore > hstScore) { cout << "Prof. Hertz happy" << endl; cout << "His team won" << endl; } else { cout << "His team lost." << endl; cout << "He is sad"; dcScore += 100; if (dcScore < hstScore) { cout << "Ouch. That's bad." <<endl; } } cout << "And now code continues" << endl; return 0;}
Coding Style Example
#include <iostream>using namespace std;
int main(void) { int dcScore = 27, hstScore = 30; if (dcScore > hstScore) { cout << "Prof. Hertz happy" << endl; cout << "His team won" << endl; } else { cout << "His team lost." << endl; cout << "He is sad"; dcScore += 100; if (dcScore < hstScore) { cout << "Ouch. That's bad." <<endl; } } cout << "And now code continues" << endl; return 0;}
Your Turn
Get in groups of 3 & work on following activity
For Next Lecture
Read sections 7.4, 7.6 – 7.7 for Thursday What if we want to run multiple clauses? Is something easier for testing lots of
equality? How can we break lots of things?
Week #3 weekly assignment due today If problem takes more than 10 minutes,
TALK TO ME!
Week #4 weekly assignment also on Angel