Switch case structures
Download
1 / 23

Switch Case Structures - PowerPoint PPT Presentation


  • 125 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Switch Case Structures' - Olivia


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Switch case structures

Switch Case Structures

Lecture 9

Winter Quarter


Switch multiple selection structure
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


Switch case structures1

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


Switch case structures2
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


Switch case structures3
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


A sample program to illustrate switch case
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


A sample program to illustrate switch case1
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


A sample program to illustrate switch case2
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


A sample program to illustrate switch case3
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


A sample program to illustrate switch case4
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


Switch case structures resultant output from grade program
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


Switch case structures4
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


Fixed program using switch case structures
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


Fixed program using switch case structures1
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


Fixed program using switch case structures2
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


Comments on last example program
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


Comments on last example program1
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


Flawed sample character input program
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


Output from flawed sample program
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


Correct sample input program
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


Output from correct input program
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


Comments on last example program2
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


Assignment g08
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