Presentation is loading. Please wait.

Presentation is loading. Please wait.

Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 1Winter Quarter Switch Case Structures.

Similar presentations


Presentation on theme: "Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 1Winter Quarter Switch Case Structures."— Presentation transcript:

1 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 1Winter Quarter Switch Case Structures Lecture 9

2 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 2Winter Quarter Switch Multiple Selection Structure A multiple selection structure is useful when an algorithm contains a series of decisions in which a variable or expression is tested separately for one of several possible integral values. Each integral value represents a different action to be taken in the algorithm. C provides the switch multiple selection structure to implement this type of decision making.

3 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 3Winter Quarter Switch-Case Structures The switch - case syntax is: switch (integer expression test value) { case case _1_fixed_value : action(s) ; case case_2_fixed_value : action(s) ; default : action(s) ; } Note use of colon!

4 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 4Winter Quarter Switch-Case Structures The switch is the "controlling expression" –Can only be used with constant integer expressions. –Remember, a single character is a small positive integer. –The expression appears in ( ) The case is a "label" –The label must be followed by a " : " –Braces, { }, not required around statements

5 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 5Winter Quarter Switch-Case Structures Unlike if-else if-else structures, when the value in a case matches the test value, all of the actions in the rest of the structure take place. This is shown in the following program where the user enters a value that matches the first case and every action in the structure is executed.

6 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 6Winter Quarter A Sample Program to Illustrate Switch-Case Problem: Write a program to ask the user to enter his/her letter grade and then respond with an appropriate message regarding his/her academic status.

7 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 7Winter Quarter A Sample Program to Illustrate Switch-Case Algorithm: 1. Set up the environment 2. Prompt user to enter his/her letter grade 3. Get user’s response 4. If grade is a or A say “Good Job” and go to 9 5. If grade is b or B say “Pretty good” and go to 9 6. If grade is c or C say “Better get to work” and go to 9 7 If grade is d or D say “You are in trouble” and go to 9 8. Say “You are failing” 9. Terminate program

8 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 8Winter Quarter A Sample Program to Illustrate Switch-Case /* This program associates a letter grade with a message appropriate to the score. */ #include int main ( ) { char grade ; printf ("Enter your current letter grade\n") ; grade = getchar ( ) ;

9 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 9Winter Quarter A Sample Program to Illustrate Switch-Case switch (grade) { case ('a') : case ('A') : printf ("Good Job!\n") ; case ('b') : case ('B') : printf ("Pretty good.\n") ;

10 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 10Winter Quarter A Sample Program to Illustrate Switch-Case case ('c') : case ('C') : printf ("Better get to work.\n") ; case ('d') : case ('D') : printf ("You are in trouble.\n") ; default : printf ("You are failing!!\n") ; } /* End of switch-case structure */ } /* End of main program */

11 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 11Winter Quarter Switch-Case Structures Resultant Output from Grade Program /* The following results are produced when the user enters an "A" as input to the program prompt. */ Good Job! Pretty good. Better get to work. You are in trouble. You are failing!

12 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 12Winter Quarter Switch-Case Structures break ; The problems with the previous program can be corrected by use of the break statement. It can be used in either a repetition structure or a selection structure to break out of (that is, to exit from) the structure. The syntax is: break ; The following program is the previous one with the addition of the break statements.

13 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 13Winter Quarter Fixed Program using Switch-Case Structures #include int main ( ) { int grade ; printf ("Enter your current letter grade\n") ; while ( ( grade = getchar ( ) ) != EOF) { switch (grade) { case ('a') : case ('A') : printf ("Good Job!\n") ; break ;

14 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 14Winter Quarter Fixed Program using Switch-Case Structures case ('b') :case ('B') : printf ("Pretty good.\n") ; break ; case ('c') :case ('C') : printf ("Better get to work.\n") ; break ; case ('d') : case ('D') : printf ("You are in trouble.\n") ; break ;

15 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 15Winter Quarter Fixed Program using Switch-Case Structures case ('f') :case ('F'): printf ("You are failing!!\n") ; break ; case (' ') :case ('\n') : //< See note pg 17 break ; default : printf ("Invalid grade. Try again.\n") ; }/* End of switch/case*/ }/* End of while loop */ }/* End of "main" function*/

16 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 16Winter Quarter Comments on Last Example Program Use of the while repetition structure -- more discussion on repetition structures later this week. Use of the end-of-file, or EOF, test. Note that EOF (a DEFINED constant) is a negative integral value, usually a -1 on most (but not all) systems. (EOF is actually defined in the header file.) Use of ints (instead of chars). Why? From the keyboard, a generates an EOF signal on most UNIX systems.

17 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 17Winter Quarter Comments on Last Example Program The statements: case (' ') :case ('\n') : break ; were used to clear the keyboard input buffer. Another way to clear it is with the statement: fgets(input_flush,256,stdin); where fgets(char_strg, len_char_strg, file_pointer); This fgets statement can prove very useful in today’s daily assignment. The two sample programs which follow show why flushing the input stream is important

18 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 18Winter Quarter Flawed Sample Character Input Program #include Int main() { char ans2; while(ans2 != ‘E’) // Here ‘E’ is a character constant { printf(“\n Input a character followed by ”); ans2 = getchar(); // getchar takes one char from input buffer // and leaves the in the buffer printf(“ ans2 >> %c <<\n”,ans2); } This program runs until you put in an E. This program does not handle multiple inputs correctly.

19 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 19Winter Quarter Output from Flawed Sample Program input a char followed by e ans2 = >> e << input a char followed by ans2 = >> << In this case a newline character which is produced by the or is read by getchar on the second time through the loop

20 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 20Winter Quarter Correct Sample Input Program #include Int main() { char ans2,input_flush[256]; while(ans2 != ‘E’) { printf(“\n Input a character followed by ”); ans2 = getchar(); fgets(input_flush,256,stdin); // Input buffer is flushed // The is not in buffer printf(“ ans2 >> %c <<\n”,ans2); }

21 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 21Winter Quarter Output from Correct Input Program input a char followed by e ans2 = >> e << input a char followed by f ans2 = >> f <<

22 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 22Winter Quarter Comments on Last Example Program Example of use of fgets(input_flush,256,stdin); char figure,input_flush[256] ; float size ; printf ("Enter figure type>") ; scanf ("%c", &figure) ; //or figure=getchar( ) ; fgets(input_flush,256,stdin); printf ("Enter size of figure>") ; scanf ("%f", &size) ; fgets(input_flush,256,stdin);

23 Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 23Winter Quarter Assignment G08 Use a switch-case structure to select from among the shapes for which calculations are to be made. May use just first character of shape name to select which calculation to make. Program only does one shape, and then exits. No looping required for today's assignment.


Download ppt "Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 9P. 1Winter Quarter Switch Case Structures."

Similar presentations


Ads by Google