csc 107 – programming for science. announcement today’s goal know how to write selections...

29
LECTURE 11: SELECT STATEMENTS CSC 107 – Programming For Science

Upload: jeffery-ryan

Post on 13-Jan-2016

216 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

LECTURE 11:SELECT STATEMENTS

CSC 107 – Programming For Science

Page 2: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Announcement

Page 3: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Today’s Goal

Know how to write selections besides if-else Why we use select or if-else and how to

choose Understand times when selection

statements illegal How to convert between the two types of

statements

Page 4: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Press “*” For Horrible Music Writing software for voicemail system

Which of 12 buttons hit determine action to take

For much of time, many keys have same effect

Long, ugly if-else if-else statement results

Now imagine choosing from 256 options Required for web browsers & other systems Takes forever to write & code impossible to

read

Page 5: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Press “*” For Horrible Music Writing software for voicemail system

Which of 12 buttons hit determine action to take

For much of time, many keys have same effect

Long, ugly if-else if-else statement results

Now imagine choosing from 256 options Required for web browsers & other systems Takes forever to write & code impossible to

read

Page 6: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Long if-else statement

if (keyHit == 1) { cout << “Please say message to record”;} else if (keyHit == 2) { cout << “Skipping to next message”;} else if (keyHit == 3) { cout << “Playing first new message”;} else if (keyHit == 4) { cout << “Message is saved for 30 days.”;} else if (keyHit == 6) { cout << “Message deleted”;} else if (keyHit == 7) { cout << “dniwer egasseM “;} else if ((keyHit == 5) || (keyHit == 8)) { cout << “I’m sorry Dave, I can’t do that.”;} else { cout << “The hit squad will find you soon.”;}

Page 7: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Long if-else statement

if (keyHit == 1) { cout << “Please say message to record”;} else if (keyHit == 2) { cout << “Skipping to next message”;} else if (keyHit == 3) { cout << “Playing first new message”;} else if (keyHit == 4) { cout << “Message is saved for 30 days.”;} else if (keyHit == 6) { cout << “Message deleted”;} else if (keyHit == 7) { cout << “dniwer egasseM “;} else if ((keyHit == 5) || (keyHit == 8)) { cout << “I’m sorry Dave, I can’t do that.”;} else { cout << “The hit squad will find you soon.”;}

Page 8: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Better idea:

if (keyHit == 1) { cout << “Please say message to record”;} else if (keyHit == 2) { cout << “Skipping to next message”;} else if (keyHit == 3) { cout << “Playing first new message”;} else if (keyHit == 4) { cout << “Message is saved for 30 days.”;} else if (keyHit == 6) { cout << “Message deleted”;} else if (keyHit == 7) { cout << “dniwer egasseM “;} else if ((keyHit == 5) || (keyHit == 8)) { cout << “I’m sorry Dave, I can’t do that.”;} else { cout << “The hit squad will find you soon.”;}

Page 9: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Better idea: switch Statementswitch (keyHit) { case 1: cout << “Please say message to record”; break; case 2: cout << “Skipping to next message”; break; case 3: cout << “Playing first new message”; break; case 4: cout << “Message will be saved for 30 days.”; break; case 6: cout << “Message deleted”; break; case 7: cout << “gnidniwer egasseM”; break; case 5: case 8: cout << “I’m sorry Dave, I can’t do that.”; break; default: cout << “The hit squad will find you soon.”; }

Page 10: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Better idea: switch Statementswitch (keyHit) { case 1: cout << “Please say message to record”; break; case 2: cout << “Skipping to next message”; break; case 3: cout << “Playing first new message”; break; case 4: cout << “Message will be saved for 30 days.”; break; case 6: cout << “Message deleted”; break; case 7: cout << “dniwer egasseM”; break; case 5: case 8: cout << “I’m sorry Dave, I can’t do that.”; break; default: cout << “The hit squad will find you soon.”; }

Page 11: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Better idea: switch Statementswitch (keyHit) { case 1: cout << “Please say message to record”; break; case 2: cout << “Skipping to next message”; break; case 3: cout << “Playing first new message”; break; case 4: cout << “Message will be saved for 30 days.”; break; case 6: cout << “Message deleted”; break; case 7: cout << “dniwer egasseM”; break; case 5: case 8: cout << “I’m sorry Dave, I can’t do that.”; break; default: cout << “The hit squad will find you soon.”; }

Page 12: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Outline of switch statement

switch (expression) {case label1: statement; statement; ... break;

...

case labeln:case labeln+1 : statement; ... break;

...

default: statement; ...

}

Page 13: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Outline of switch statement

switch (expression) {case label1: statement; statement; ... break;

...

case labeln:case labeln+1: statement; ... break;

...

default: statement; ...

}

Anything of ordinal (whole number) type: intdouble char float long Monkey

Page 14: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Outline of switch statement

switch (expression) {case label1: statement; statement; ... break;

...

case labeln:case labeln+1: statement; ... break;

...

default: statement; ...

}

Anything of ordinal (whole number) type: intdouble char float long Monkey

Page 15: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Outline of switch statement

switch (expression) {case label1: statement; statement; ... break;

...

case labeln:case labeln+1: statement; ... break;

...

default: statement; ...

}

Labels must be

constants or literal

Page 16: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Outline of switch statement

switch (expression) {case label1: statement; statement; ... break;

...

case labeln:case labeln+1: statement; ... break;

...

default: statement; ...

}

This is legal; execution only

stops at break or ending brace

Page 17: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Outline of switch statement

switch (expression) {case label1: statement; statement; ... break;

...case labeln:

statement; statement;case labeln+1: statement; ... break;

... default: statement; ...

}

Still legal; execution only

stops at break or ending brace

Page 18: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Outline of switch statement

switch (expression) {case label1: statement; statement; ... break;

...

case labeln:case labeln+1: statement; ... break;

...

default: statement; ...

}

Optional, like else must be at end & matches anything

left

Page 19: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Outline of switch statement

switch (expression) {case label1: statement; statement; ... break;

...

case labeln:case labeln+1: statement; ... break;

...

default: statement; ...

}

Same as equality test in if:

if (expression == label1) {

Page 20: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Outline of switch statement

switch (expression) {case label1: statement; statement; ... break;

...

case labeln:case labeln+1: statement; ... break;

...

default: statement; ...

}

Works like OR (||) in if-else if: else if (expression == labeln || expression == labeln+1) {

Page 21: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Outline of switch statement

switch (expression) {case label1: statement; statement; ... break;

...case labeln:

statement; statement;case labeln+1: statement; ... break;

... default: statement; ...

}

Fall-thru unique to switch;

Cannot overlap in if-else if

Page 22: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

switch Statement

Depends on a value to determine what is run Easier to read than if-else if

Expression can be anything you want bool, char, short, int, or long result

required Where execution starts marked by the

labels Literals or constants only usable for the

labels Labels in any order: starts at first equal to

value Doesn’t stop at next label (unlike if-else) Execution continues until closing brace or break

No reevaluation of expression in switch statement

Page 23: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Executing switch Statement

1. Evaluates expression2. Finds first matching case or default

If no default no match, will skip past switch

3. Execution starts at 1st matching label Execution will continue until break found Continues into next case if break is not hit

4. Restarts running after switch once break hit

Legal to reach end of switch without a break

Continues running code after switch

Page 24: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Tracing switch Statement

float temp = -40; float convert; char c; cin >> c; switch (toupper(c)) { case ‘K’: temp = temp – 273.15; case ‘C’: convert = ((temp / 5) * 9) + 32; break; case ‘F’: convert = ((temp - 32) / 9) * 5; break; default: cout << “Amoronsayswhat?” << endl; } cout <<“Converted temp: ” << convert << endl;

Page 25: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Tracing switch Statement

float temp = -40; float convert; char c; cin >> c; switch (toupper(c)) { case ‘K’: temp = temp – 273.15; case ‘C’: convert = ((temp / 5) * 9) + 32; break; case ‘F’: convert = ((temp - 32) / 9) * 5; break; default: cout << “Amoronsayswhat?” << endl; } cout <<“Converted temp: ” << convert << endl;

Page 26: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Tracing switch Statement

float temp = -40; float convert; char c; cin >> c; switch (toupper(c)) { case ‘K’: temp = temp – 273.15; case ‘C’: convert = ((temp / 5) * 9) + 32; break; case ‘F’: convert = ((temp - 32) / 9) * 5; break; default: cout << “Amoronsayswhat?” << endl; } cout <<“Converted temp: ” << convert << endl;

Page 27: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Steel Cage Match

if - else if - else switch

Actions cannot overlap

Expression per if,else if

Any boolean expressions

else gets remaining cases

Use for actions needed only when expression(s) are true

Overlap by omitting break;

Evaluates single expression

Only 1 equality test default gets all other

cases

Use for actions neededwhen expression has specific value –or – actions should overlap

Page 28: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

Your Turn

Get in groups of 3 & work on following activity

Page 29: CSC 107 – Programming For Science. Announcement Today’s Goal  Know how to write selections besides if-else  Why we use select or if - else and how

For Next Lecture

Read sections 8.1 – 8.3 for Monday What if we want to do something

repeatedly? How should we tell the machine to stop? What is difference between while and do-while?

Week #4 weekly assignment available on Angel If problem takes more than 10 minutes,

TALK TO ME!

Programming Project #1 available on Angel also One of term’s 3 large assignments – due

Oct. 1