CSC 107 – Programming For Science. Announcements Tutors available MTWR in WTC206/WTC208 Special lab (with Macs) & not in the Tutoring Center Can.

Post on 29-Dec-2015

217 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

LECTURE 10:IF-ELSE IF-ELSE STATEMENTS

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

1st evaluates boolean expression in parenthesis

Executes next statement if expression is true When expression is false, skips over the

statementint num = -32;

if (num < 0) {

cout << "Sorry Dave, I can't do that."<<endl;

}

cout << "What is the next item?" << endl;

cin >> val;

if ((val < num) || (val <= 0)) {

cout << "That was a poor choice“ << endl;

}

if (…) statement

1st evaluates boolean expression in parenthesis

Executes next statement if expression is true When expression is false, skips over the

statement This leads to one very common bug

; is statement (a boring statement, but…)

if (dc > 20);cout << "Huh?"

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 having 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 Save space: closing brace on else/else if

line Closing brace on own line at end of the

statement

Coding Style Example

#include <iostream>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 <iostream>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 <iostream>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 <iostream>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 <iostream>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 <iostream>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!

top related