1 / 23

Switch Case Structures

Switch Case Structures. Lecture 9. 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.

Olivia
Download Presentation

Switch Case Structures

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Switch Case Structures Lecture 9 Winter Quarter

  2. 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

  3. Note use of colon! 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) ; } Winter Quarter

  4. 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

  5. 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. Winter Quarter

  6. 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

  7. 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

  8. A Sample Program to Illustrate Switch-Case /* This program associates a letter grade with a message appropriate to the score. */ #include <stdio.h> intmain( ) { char grade ; printf("Enter your current letter grade\n") ; grade = getchar( ) ; Winter Quarter

  9. 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

  10. 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

  11. Switch-Case StructuresResultant 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

  12. 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

  13. Fixed Program using Switch-Case Structures #include <stdio.h> 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 ; Winter Quarter

  14. 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

  15. 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 */ Winter Quarter

  16. Comments on Last Example Program • Use of the whilerepetition 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

  17. 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 Winter Quarter

  18. Flawed Sample Character Input Program • #include <stdio.h> • Int main() • { • char ans2; • while(ans2 != ‘E’) // Here ‘E’ is a character constant • { • printf(“\n Input a character followed by <enter>”); • ans2 = getchar(); // getchar takes one char from input buffer • // and leaves the <enter> 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. Winter Quarter

  19. Output from Flawed Sample Program input a char followed by <enter> e ans2 = >> e << input a char followed by <enter> ans2 = >> << In this case a newline character which is produced by the <return> or <enter> is read by getchar on the second time through the loop Winter Quarter

  20. Correct Sample Input Program • #include <stdio.h> • Int main() • { • char ans2,input_flush[256]; • while(ans2 != ‘E’) • { • printf(“\n Input a character followed by <return>”); • ans2 = getchar(); • fgets(input_flush,256,stdin); // Input buffer is flushed • // The <return> is not in buffer • printf(“ ans2 >> %c <<\n”,ans2); • } • } Winter Quarter

  21. Output from Correct Input Program input a char followed by <enter> e ans2 = >> e << input a char followed by <enter> f ans2 = >> f << Winter Quarter

  22. Comments on Last Example Program • Example of use offgets(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); Winter Quarter

  23. 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. Winter Quarter

More Related