Download presentation
Presentation is loading. Please wait.
1
EECE.2160 ECE Application Programming
Instructor: Dr. Michael Geiger Fall 2018 Lecture 9: Switch statements While loops
2
ECE Application Programming: Lecture 9
Lecture outline Announcements/reminders Program 3 due Monday, 10/1 Exam 1: Friday, 10/5 Will be allowed one double-sided 8.5” x 11” note sheet No calculators or other electronic devices allowed Review Range checking with if statements Today’s lecture Switch statements While loops 6/30/2019 ECE Application Programming: Lecture 9
3
Review: range checking
Common application of if statements: checking to see if value falls inside/outside desired range Value inside range inside both endpoints AND together tests for each endpoint Ex: if (x >= 1 && x <= 10) Value outside range outside either endpoint OR together tests for each endpoint Ex: if (x < 1 || x > 10) 6/30/2019 ECE Application Programming: Lecture 9
4
ECE Application Programming: Lecture 9
switch statements Nesting several if/else if statements can get tedious If each condition is simply checking equality of same variable or expression, can use switch 6/30/2019 ECE Application Programming: Lecture 9
5
switch/case statement - General form
switch ( <expression> ) { case <value1> : <statements> [ break; ] case <value2> : <statements> [ break; ] . . [ default: <statements> [ break; ] ] } 6/30/2019 ECE Application Programming: Lecture 9
6
switch/case statement
Check if <expression> matches any value in case statements If <expression> == <value1>, execute <statements> in that case If <expression> == <value2>, execute <statements> in that case If <expression> does not equal any of the values, go to default case (if present) 6/30/2019 ECE Application Programming: Lecture 9
7
Switch statements and break
Each case is just a starting point—switch does not automatically skip other cases! Example: switch (x) { case 0: x = 3; case 1: x = x * 4; default: x = x – 1; } If x == 0: Start at case 0 x = 3; Then, go to case 1 x = x * 4 = 3 * 4 = 12 Then, go to default: x = x – 1 = 12 – 1 = 11 6/30/2019 ECE Application Programming: Lecture 9
8
Switch statements and break
Use break to exit at end of case You may not always want to use break—will see examples later Rewriting previous example: switch (x) { case 0: x = 3; break; case 1: x = x * 4; default: x = x – 1; } 6/30/2019 ECE Application Programming: Lecture 9
9
switch/case statement - example
#include <stdio.h> int main() { char grd; printf("Enter Letter Grade: "); scanf("%c",&grd); printf(“You are "); // continued next slide 6/30/2019 ECE Application Programming: Lecture 9
10
switch/case statement - example
switch (grd) { case 'A' : printf("excellent"); break; case 'B' : printf("good"); break; case 'C' : printf("average"); break; case 'D' : printf("poor"); break; case 'F' : printf("failing"); break; default : printf(“incapable of reading directions"); break; } return 0; } 6/30/2019 ECE Application Programming: Lecture 9
11
Example: switch statement
What does the program on the previous slides print if the user enters: A B+ c X Recognize, of course, that it always prints: Enter Letter Grade: 6/30/2019 ECE Application Programming: Lecture 9
12
ECE Application Programming: Lecture 9
Example solution What does the program on the previous slides print if the user enters: A You are excellent B+ Only first character is read—’B’ You are good c This program is case-sensitive—’C’ and ‘c’ are two different characters! Will go to default case You are incapable of reading directions X No case for ‘X’—goes to default case 6/30/2019 ECE Application Programming: Lecture 9
13
switch/case statement - Alt example
switch (grd) { case 'A' : case 'a': case 'B' : case 'b': printf("doing very well"); break; case 'C' : case 'c': case 'D' : case 'd': printf("not doing too well"); break; case 'F' : case ‘f': printf("failing"); break; default : printf("incapable of reading directions"); break; } return 0; } 6/30/2019 ECE Application Programming: Lecture 9
14
ECE Application Programming: Lecture 9
Repetition Say we have a program to print squares of numbers between 0 and 10: void main() { int i; // Number to square int iSquared; // Square of the number printf(" i i^2\n"); // Column headings // Compute and display the squares of numbers 0 through 10 i = 0; iSquared = i * i; printf("%2d%10d\n", i, iSquared); ... // Code for i = 1, 2, ... 8, 9 i = 10; } 6/30/2019 ECE Application Programming: Lecture 9
15
ECE Application Programming: Lecture 9
while loops Previous program does same thing 11 times Repetitive code can be captured in a loop Much less code to do same amount of work Simplest form: while loop while (<expression>) <statement> loop body Loop body will repeat as long as <expression> is true Loop body must therefore change expression <statement> may be one or more lines If multiple lines, need { } to denote block 6/30/2019 ECE Application Programming: Lecture 9
16
ECE Application Programming: Lecture 9
while loops - example x = 7; while ( x < 10 ) { printf("%d ",x); x = x + 1; } OUTPUT: 7 8 9 6/30/2019 ECE Application Programming: Lecture 9
17
ECE Application Programming: Lecture 9
while loops - example x = 7; while ( x < 3 ) { printf("%d ",x); x = x + 1; } OUTPUT: (no output) Possible to have while loop body that never executes! 6/30/2019 ECE Application Programming: Lecture 9
18
Repetition with while loop
Rewriting previous program with loop int main() { int i; // Number to square int iSquared; // Square of the number printf(" i i^2\n"); // Column headings // Compute and display the squares of numbers 0 to 10 i = 0; // Initialize i while (i <= 10) { // Loop until i > 10 iSquared = i * i; printf("%2d%10d\n", i, iSquared); i = i + 1; // Increment i } return 0; 6/30/2019 ECE Application Programming: Lecture 9
19
ECE Application Programming: Lecture 9
Final notes Next time More on while loops Reminders: Program 3 due Monday, 10/1 Exam 1: Friday, 10/5 Will be allowed one double-sided 8.5” x 11” note sheet No calculators or other electronic devices allowed 6/30/2019 ECE Application Programming: Lecture 9
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.