0% found this document useful (0 votes)
45 views19 pages

Introduction To Computers and Programming (CSC-141)

The document provides an introduction and overview of switch statements in C programming. It explains that switch statements allow a program to evaluate an expression and execute different blocks of code based on multiple possible case values. The key points are: - Switch statements provide an alternative to multiple if/else statements for multiple choice selection. - The syntax includes the switch keyword followed by an expression, then case labels and code blocks to execute for each case. - If a case matches the switch expression value, its code block will run along with any subsequent case blocks until a break is reached. - Default code runs if no cases match the expression. Proper use of break ensures only the intended case code executes.

Uploaded by

Asad Amjad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views19 pages

Introduction To Computers and Programming (CSC-141)

The document provides an introduction and overview of switch statements in C programming. It explains that switch statements allow a program to evaluate an expression and execute different blocks of code based on multiple possible case values. The key points are: - Switch statements provide an alternative to multiple if/else statements for multiple choice selection. - The syntax includes the switch keyword followed by an expression, then case labels and code blocks to execute for each case. - If a case matches the switch expression value, its code block will run along with any subsequent case blocks until a break is reached. - Default code runs if no cases match the expression. Proper use of break ensures only the intended case code executes.

Uploaded by

Asad Amjad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

Introduction to Computers and

Programming (CSC-141)
Lecture 12
Introduction
 We may face situations where we are required to make a
choice between a number of alternatives rather than only
one or two
 e.g.
 Which school to join
 Which hotel to stay
 To whom we should vote
 C allows us a mechanism which can be used in these
situations effectively rather than using a series of if
statements
 This mechanism is called a Switch

2
Decisions using Switch
 The control statement that allows us to make a decision from
number of choices is called a switch or switch-case-default
 These three keywords make up the control statement

 The syntax is:


switch (integer expression)
{
case constant 1:
do this;
case constant 2:
do this;
case constant 3:
do this;
default:
do this;
}

3
Cont..
 The integer expression following the keyword switch
is any C expression that will yield an integer value
 It could be an integer constant (1,2,3,4 etc) or an
expression that evaluates to an integer value
 The keyword case is followed by an integer or a
character constant
 Each constant in each case must be different from all
the others
 “do this;” represents any valid C statement

4
Running a Program
 First the integer expression following the keyword
switch is evaluated
 The value it gives is then matched, one by one, against the
constant values that follow the case statements
 When a match is found, the program executes the
statements following that case and all the subsequent
cases and the default statements as well
 If no match is found with any of the case statements,
only the statements following the default are executed

5
Example
main( )
{
int i = 2 ;
switch ( i )
{
case 1 :
printf ( "I am in case 1 \n" ) ;
case 2 :
printf ( "I am in case 2 \n" ) ;
case 3 :
printf ( "I am in case 3 \n" ) ;
default :
printf ( "I am in default \n" ) ;
}
}

Output:
I am in case 2
I am in case 3
I am in default
6
Cont..
 The output of this program would be:
I am in case 2
I am in case 3
I am in default

 The output is definitely not what we expected


 We didn’t expect the second and third line in the output
 The program prints case 2, case 3 and the default case
 If you want that only case 2 statements should get
executed then use break statement

7
Cont..
main( )
{
int i = 2 ;
switch ( i )
{
case 1 :
printf ( "I am in case 1 \n" ) ;
break ;
case 2 :
printf ( "I am in case 2 \n" ) ;
break ;
case 3 :
printf ( "I am in case 3 \n" ) ;
break ;
default :
printf ( "I am in default \n" ) ;
}
}

Output:
I am in case 2
8
The Flow of Control

9
The Tips and Traps
 Few useful tips about the usage of switch
a) You can put the cases in any order you wish
b) Even if there are multiple statements to be executed in a case,
no need to enclose them within a pair of braces
c) If we have no default case, then the program simply falls
through the entire switch and continues with the next
instruction (if any,) that follows the closing brace of switch
d) We can check the value of any expression in a switch. The
following statements are legal
switch ( i + j * k )
switch ( 23 + 45 % 4 * k )
switch ( a < 4 && b > 7 )
Expressions can also be used with cases if they are constant
expressions like case 3+5 but not case a+b

10
Cont..
e) The break statement when used in a switch takes the
control outside the switch. However, use of continue
will not take the control to the beginning of switch
f) The switch statement is very useful while writing menu
driven programs
g) A switch may occur within another switch but it very
rarely done. Such statements would be called nested
switch

11
You are also allowed to use char values in
case and switch
main ( )
{
char c = 'x' ;
switch ( c )
{
case 'v' :
printf ( "I am in case v \n" ) ;
break ;
case 'a' :
printf ( "I am in case a \n" ) ;
break ;
case 'x' :
printf ( "I am in case x \n" ) ;
break ;
default :
printf ( "I am in default \n" ) ;
}
}

12
We can execute a common set of statements
for multiple cases
main( )
{
char ch ;
printf ( "Enter any of the alphabet a, b, or c " ) ;
scanf ( "%c", &ch ) ;
switch ( ch )
{
case 'a' :
case 'A' :
printf ( "a as in apple" ) ;
break ;
case 'b' :
case 'B' :
printf ( "b as in brain" ) ;
break ;
case 'c' :
case 'C' :
printf ( "c as in cat" ) ;
break ;
default :
printf ( "wish you knew what are alphabets" ) ;
}
}

13
Every statement in a switch must belong to some case. If a statement
doesn’t belong to any case the compiler won’t report an error. However
the statement would not execute
main( )
{
int i, j ;
printf ("Enter value of i: " ) ;
scanf ( "%d", &i ) ;
switch ( i )
{
printf ( "Hello" ) ;
case 1 :
printf("1 is entered");
j = 10 ;
break ;
case 2 :
printf("2 is entered");
j = 20 ;
break ;
}
}

14
The goto Keyword
 The purpose of goto is to pass the control to a certain
position
 It is very rarely used
 With goto, the programs become unreliable, unreadable
and hard to debug
 It obscures the flow of control
 As far as possible skip them

15
goto Example
main( )
{
int goals ;
printf ( "Enter the number of goals scored against Spain" ) ;
scanf ( "%d", &goals ) ;
if ( goals <= 5 )
goto sos ;
else
{
printf ( "Well done guys!" ) ;
//terminates program execution
// #include<stdlib.h> for exit function
exit(0) ;
}
sos :
printf ( "We scored few goals :(" ) ;
}

16
Cont..
 If the condition is satisfied the goto statement transfers
control to the label ‘sos’, causing printf( ) following sos
to be executed.
 The label can be on a separate line or on the same line as the
statement following it, as in,
sos : printf ("We scored few goals :(") ;
 Any number of gotos can take the control to the same label.
 The exit(0) function is a standard library function which
terminates the execution of the program. It is necessary to use
this function since we don't want the statement printf ("We
scored few goals :(") to get executed after execution of
the else block.

17
The only programming situation in favor of using goto is when
we want to take the control out of the loop that is contained in
several other loops. The following program illustrates this.

main( )
{
int i, j, k ;
for ( i = 1 ; i <= 3 ; i++ )
{
for ( j = 1 ; j <= 3 ; j++ )
{
for ( k = 1 ; k <= 3 ; k++ )
{
if ( i == 3 && j == 3 && k == 3 )
goto out ;
else
printf ( "%d %d %d\n", i, j, k ) ;
}
}
}
out :
printf ( "Out of the loop at last!" ) ;
}

18
Thanks!

19

You might also like