CSC 107 – Programming For Science
Announcements Tutors available MTWR in WTC206/WTC208 Special lab (with Macs) & not in the Tutoring Center Can answer questions you have about material Also very good at helping with weekly assignments Directly across from my office, so I can also help My office hours are minimum time I am around During the day, often (usually) around at other times Please ask questions and get any help you need No RSVPs; could also take candy I have in my office
Today’s Goals Be able to use if – else if – else statements Know how to order choices to work properly Explain why if & else if conditions not related Correctly use braces ( { } ) and make code pretty Explain when & why if – else if – else used
if (…) statement 1 st evaluates boolean expression in parenthesis Executes next statement if expression is true When expression is false, skips over the statement int num = -32; if (num > val; if ((val < num) || (val <= 0)) { cout << "That was a poor choice“ << endl; }
if (…) statement
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 ifelse In these cases, can use if-else statement must 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 having if & no else false true
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 another if (a > 3) { cout 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 else if Or easier & nicer if – else if – else statement if (a > 3) { cout 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
if – else if – else Example if (wealth > ) { cout ) { cout ) { cout 10000) { cout 0) { cout << "Good luck" << endl; }
if – else if – else Example if (wealth > ) { cout ) { cout ) { cout 10000) { cout 0) { cout << "Good luck" << endl; }
if – else if – else Example if (wealth > ) { cout ) { cout ) { cout 10000) { cout 0) { cout << "Good luck" << endl; } else { cout << "Government bailout!" << endl; }
if – else if – else Example if (wealth > ) { cout ) { cout ) { cout 10000) { cout 0) { cout << "Good luck" << endl; } else { cout << "Government bailout!" << endl; }
if – else if – else Example if (wealth > ) { cout ) { cout 10000) { cout 0) { cout ) { 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 Save space: closing brace on else/else if line Closing brace on own line at end of the statement
Coding Style Example #include using namespace std; int main() { int dcScore = 22, azScore = 21; if (dcScore > azScore) { cout << "Prof. Hertz happy" << endl; cout << "His team won" << endl; } else { cout << "His team lost." << endl; cout << "He gives out Fs"; dcScore += 100; if (dcScore < azScore) { cout << "Ouch. That's Buffalo bad." <<endl; } } cout << "And now code continues" << endl; return 0; }
Coding Style Example #include using namespace std; int main() { int dcScore = 22, azScore = 21; if (dcScore > azScore) { cout << "Prof. Hertz happy" << endl; cout << "His team won" << endl; } else { cout << "His team lost." << endl; cout << "He gives out Fs"; dcScore += 100; if (dcScore < azScore) { cout << "Ouch. That's Buffalo bad." <<endl; } } cout << "And now code continues" << endl; return 0; }
Coding Style Example #include using namespace std; int main() { int dcScore = 22, azScore = 21; if (dcScore > azScore) { cout << "Prof. Hertz happy" << endl; cout << "His team won" << endl; } else { cout << "His team lost." << endl; cout << "He gives out Fs"; dcScore += 100; if (dcScore < azScore) { cout << "Ouch. That's Buffalo bad." <<endl; } } cout << "And now code continues" << endl; return 0; }
Coding Style Example #include using namespace std; int main() { int dcScore = 22, azScore = 21; if (dcScore > azScore) { cout << "Prof. Hertz happy" << endl; cout << "His team won" << endl; } else { cout << "His team lost." << endl; cout << "He gives out Fs"; dcScore += 100; if (dcScore < azScore) { cout << "Ouch. That's Buffalo bad." <<endl; } } cout << "And now code continues" << endl; return 0; }
Coding Style Example #include using namespace std; int main() { int dcScore = 22, azScore = 21; if (dcScore > azScore) { cout << "Prof. Hertz happy" << endl; cout << "His team won" << endl; } else { cout << "His team lost." << endl; cout << "He gives out Fs"; dcScore += 100; if (dcScore < azScore) { cout << "Ouch. That's Buffalo bad." <<endl; } } cout << "And now code continues" << endl; return 0; }
Coding Style Example #include using namespace std; int main() { int dcScore = 22, azScore = 21; if (dcScore > azScore) { cout << "Prof. Hertz happy" << endl; cout << "His team won" << endl; } else { cout << "His team lost." << endl; cout << "He gives out Fs"; dcScore += 100; if (dcScore < azScore) { cout << "Ouch. That's Buffalo 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 Friday 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 yesterday But could still submit today by using virtual extension Week #4 weekly assignment also on Angel If problem takes more than 10 minutes, TALK TO ME!