Skip to main content

Lesson 5: switch case in C and C++

Switch case statements are a substitute for long if statements that compare a variable to several "integral" values ("integral" values are simply values that can be expressed as an integer, such as the value of a char). The basic format for using switch case is outlined below. The value of the variable given into switch is compared to the value following each of the cases, and when one value matches the value of the variable, the computer continues executing the program from that point.
 
switch ( <variable> ) {
case this-value:
  Code to execute if <variable> == this-value
  break;
case that-value:
  Code to execute if <variable> == that-value
  break;
...
default:
  Code to execute if <variable> does not equal the value following any of the cases
  break;
} 
 
The condition of a switch statement is a value. The case says that if it
 has the value of whatever is after that case then do whatever follows 
the colon. The break is used to break out of the case statements. Break 
is a keyword that breaks out of the code block, usually surrounded by 
braces, which it is in. In this case, break prevents the program from 
falling through and executing the code in all the other case statements.
 An important thing to note about the switch statement is that the case 
values may only be constant integral expressions. Sadly, it isn't legal 
to use case like this:
 
int a = 10;
int b = 10;
int c = 20;

switch ( a ) {
case b:
  // Code
  break;
case c:
  // Code
  break;
default:
  // Code
  break;
}
 
The default case is optional, but it is wise to include it as it handles
 any unexpected cases. Switch statements serves as a simple way to write
 long if statements when the requirements are met. Often it can be used 
to process input from a user.


 
Below is a sample program, in which not all of the proper functions are 
actually declared, but which shows how one would use switch in a 
program.
 
#include <iostream>

using namespace std;

void playgame()
{
    cout << "Play game called";
}
void loadgame()
{
    cout << "Load game called";
}
void playmultiplayer()
{
    cout << "Play multiplayer game called";
}
 
int main()
{
  int input;
  
  cout<<"1. Play game\n";
  cout<<"2. Load game\n";
  cout<<"3. Play multiplayer\n";
  cout<<"4. Exit\n";
  cout<<"Selection: ";
  cin>> input;
  switch ( input ) {
  case 1:            // Note the colon, not a semicolon
    playgame();
    break;
  case 2:            // Note the colon, not a semicolon
    loadgame();
    break;
  case 3:            // Note the colon, not a semicolon
    playmultiplayer();
    break;
  case 4:            // Note the colon, not a semicolon
    cout<<"Thank you for playing!\n";
    break;
  default:            // Note the colon, not a semicolon
    cout<<"Error, bad input, quitting\n";
    break;
  }
  cin.get();
}
 
This program will compile, but cannot be run until the undefined 
functions are given bodies, but it serves as a model (albeit simple) for
 processing input. If you do not understand this then try mentally 
putting in if statements for the case statements. Default simply skips 
out of the switch case construction and allows the program to terminate 
naturally. If you do not like that, then you can make a loop around the 
whole thing to have it wait for valid input. You could easily make a few
 small functions if you wish to test the code. 

Popular posts from this blog

AGRICULTURAL SCIENTIST RECRUITMENT BOARD

Agricultural Research Service

National
Eligibility Test/ Senior Research Fellowship Examination 

The Agricultural Scientists Recruitment Board (ASRB)
 holds a Competitive Examination for recruiting Scientists of the ARS in the pay scale of Rs. 8,000-13,500 in the ICAR Institutes, combined with National Eligibility Test (NET) for recruitment of Lecturers and Assistant Professors by the State Agricultural Universities (SAUS) and for award of ICAR Senior Research Fellowships.

The selected candidates for Agricultural Research Service must serve in the institutes to which they are posted until they find appointment for higher positions through selection at other institutes.

(i) Candidates successful in ARS are appointed as Scientists in the Indian Council of Agricultural Research in the pay scale of Rs. 8,000-13,500.

(ii) Candidates clearing the National Eligibility Test are recommended to various State Agricultural Universities who will consider them for appointment as Lecturers or Assistant Pro…

CIVIL SERVICES' (I.A.S.) EXAMINATION

The Union Public Service Commission (U.P.S.C.) conducts Civil Services' Examination once a year in two stages. The Preliminary Examination (Objective Type) for selection of candidates for the Main Examination is held in the month of May.

The Civil Services Main Examination
 is held in the months of October/November. Blank application forms and other particulars are published in the Employment News, generally in the month of December.

The last date for the submission of applications to the Secretary, Union Public Service Commission, Dholpur House, Shahjahan Road, NewDelhi-11001 1 is usually the last week of January of the year of examination.

The Combined Civil Services Examination is conducted for Recruitment to the following Services/Posts:

1. Indian Administrative Service.
2. Indian Foreign Service.
3. Indian Police Service.
4. Indian P & T Accounts & Finance Service, Group 'A'.
5. Indian Audit and Accounts Service, Group 'A'.
6. Indian Customs and Central Excise S…

HSC Exam Time Table 2013 Arts, Commerce, Science

HSC Exam Time Table 2013:- Date: 21 Feb 2013 (Thursday)

Paper: (Marathi / Gujarati / Kannada / Sindi / Malyalam / Tamil / Telugu / Punjabi / Bengali
Time: 11.00 am to 2.00 pm

Date: 22 Feb 2013 (Friday)

Paper: Hindi
Time: 11.00 am to 2.00 pm
Paper: German / Andhramagadhi / Persian
Time: 3.00 am to 6.00 pm

Date: 23 Feb 2013 (Saturday)

Paper: English
Time: 11.00 am to 2.00 pm

Date: 25 Feb 2013 (Monday)

Paper: Secretarial Practice
Time: 11.00 am to 2.00 pm
Paper: Physics
Time: 11.00 am to 2.00 pm
Paper: Political Science
Time: 3.00 am to 6.00 pm

Date: 27 Feb 2013 (Wednesday)

Paper: Book Keeping & Accoutancy
Time: 11.00 am to 2.00 pm
Paper: Chemistry (will Be held on 26 March)
Time: 11.00 am to 2.00 pm
Paper: Philosophy
Time: 3.00 am to 6.00 pm

Date: 1 March 2013 (Friday)

Paper: Mathematics & Statistics Paper (Revised)
Time: 11.00 am to 2.00 pm
Paper: Mathematics & Statistics - I (Commerce)
Time: 11.00 am to 1.00 pm
Paper: Sociology
Time: 3.00 am to 6.00 pm

Date: 2 March 2013 (Saturd…