Engineering H 192 Computer Programming Switch Case Structures



















- Slides: 19

Engineering H 192 - Computer Programming Switch Case Structures Lecture 9 Winter Quarter Gateway Engineering Education Coalition 1

Engineering H 192 - Computer Programming 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. Winter Quarter Gateway Engineering Education Coalition 2

Engineering H 192 - Computer Programming Switch-Case Structures • The switch - case syntax is: switch (integer expression test value) { Note use of colon! case _1_fixed_value : action(s) ; case_2_fixed_value : action(s) ; default : action(s) ; } Winter Quarter Gateway Engineering Education Coalition 3

Engineering H 192 - Computer Programming 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 Winter Quarter Gateway Engineering Education Coalition 4

Engineering H 192 - Computer Programming Switch-Case Structures • Unlike 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. Winter Quarter Gateway Engineering Education Coalition 5

Engineering H 192 - Computer Programming 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. Winter Quarter Gateway Engineering Education Coalition 6

Engineering H 192 - Computer Programming 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 Winter Quarter Gateway Engineering Education Coalition 7

Engineering H 192 - Computer Programming A Sample Program to Illustrate Switch-Case /* This program associates a letter grade with a message appropriate to the score. */ #include <stdio. h> void main ( ) { char grade ; printf ("Enter your current letter graden") ; grade = getchar ( ) ; Winter Quarter Gateway Engineering Education Coalition 8

Engineering H 192 - Computer Programming 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") ; Winter Quarter Gateway Engineering Education Coalition 9

Engineering H 192 - Computer Programming 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 */ Winter Quarter Gateway Engineering Education Coalition 10

Engineering H 192 - Computer Programming 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! Winter Quarter Gateway Engineering Education Coalition 11

Engineering H 192 - Computer Programming 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. Winter Quarter Gateway Engineering Education Coalition 12

Engineering H 192 - Computer Programming Fixed Program using Switch-Case Structures #include <stdio. h> void main ( ) { int grade ; printf ("Enter your current letter graden") ; while ( ( grade = getchar ( ) ) != EOF) { switch (grade) { case ('a') : case ('A') : printf ("Good Job!n") ; break ; Winter Quarter Gateway Engineering Education Coalition 13

Engineering H 192 - Computer Programming 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 ; Winter Quarter Gateway Engineering Education Coalition 14

Engineering H 192 - Computer Programming Fixed Program using Switch-Case Structures case ('f') : case ('F'): printf ("You are failing!!n") ; break ; case (' ') : case ('n') : break ; default : printf ("Invalid grade. Try again. n") ; } /* End of switch/case */ } /* End of while loop */ } /* End of "main" function */ Winter Quarter Gateway Engineering Education Coalition 15

Engineering H 192 - Computer Programming 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 <stdio. h> header file. ) • Use of ints (instead of chars). Why? • From the keyboard, a <return> <cntrl-d> generates an EOF signal on most UNIX systems. Winter Quarter Gateway Engineering Education Coalition 16

Engineering H 192 - Computer Programming 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: fflush (stdin) ; • This statement can prove very useful in today’s daily assignment. Winter Quarter Gateway Engineering Education Coalition 17

Engineering H 192 - Computer Programming Comments on Last Example Program • Example of use of fflush char figure; float size; printf ("Enter figure type>") ; fflush (stdin) ; scanf ("%c", &figure) ; //or figure=getchar( ); printf ("Enter size of figure>") ; fflush (stdin); scanf ("%f", &size); Winter Quarter Gateway Engineering Education Coalition 18

Engineering H 192 - Computer Programming Assignment E 8 • Use a switch-case structure to select from among the shapes for which calculation 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. Winter Quarter Gateway Engineering Education Coalition 19