Lesson 16 - Learning Goals
16.1 Learn how to use the C switch command
16.2 Learn how to use the C continue
16.3 Learn how to use the C break
SWITCH STATEMENT :
switch(expression)
{
case value :
statement;
break;
.
.
.
case value :
statement;
break;
default :
statement;
break;
}
SWITCH EXAMPLE
switch (user_input)
{
/* A simple four functions calculator */
case '+':
c = a + b;
break;
case '-':
c = a - b;
break;
case '*':
case 'X':
case 'x':
c = a * b;
break;
case '/':
c = a / b;
break;
default:
printf ("Illegal keystroke!\n");
break;
}
ADVANTAGES OF SWITCH :
DISADVANTAGES :
CONTINUE STATEMENT IN A WHILE
LOOP
GENERAL CASE
Is logical expression_1 true?
Insertion
of if structure
if
(expression_2) continue ;
/*
Then, is logical expression_1 true? (back to beginning) */
else
statement ;
/* Then, is logical expression_1 true? (back to beginning) */
exit
the loop.
Use of the continue statement
EXAMPLE
/* function to count letters in a string */
void char_count ( char *s, int counts[ ] )
{
/* loop through entire string */
for ( ; *s != '\0' ; s++ )
{
if ( !isalpha(*s)) continue ; /* if not a letter, continue loop */
else
{
if ( isupper(*s))
counts [*s - 'A']++ ;
else
counts [ *s - 'a ']++ ;
}
}
}
BREAK OUT OF WHILE LOOP
GENERAL CASE
Is logical expression_1 true?
If YES :
Insertion
of if structure
if
(expression_2) break ;
/*
break out of the loop */
else
statement ;
/* Then, is logical expression_1 true? (back to beginning) */
If NO :
exit
the loop.
Use of break statement
EXAMPLE
#include <stdio.h>
main ( )
{
char id [ 10 ] ;
int digit, spaces, number ;
while ( scanf (''%s'', id ) = = 1 )
{
if ( strlen (id) != 7 )
{
printf (''%s is not a proper number - I quit ! \n'', id ) ;
break ;
}
for ( digit = 0 ; digit < 7 ; digit += 1 )
{
for ( spaces = 1 ; spaces < = digit ; spaces += 1 )
{
putchar (' ') ;
}
number = id [ digit ] - '0' ;
printf (''%1d \n'', number) ;
}
}
}
General Form of a Conditional
Expression
TRUE FALSE
expression_1 ? expression_2 :
expression_3 ;
Use of conditional operator
and the equivalent if statement
/* sample use of conditional
operator */
answer = ( A < B ) ? A : B
;
/* equivalent of conditional
operator using logical if statement */
if ( A < B )
answer = A ;
else
answer
= B ;
Use of statement Labels and
the goto statement
EXAMPLE :
multiply_by_two : /* Label */
a = 2*a ;
other statements ;
.
.
.
goto multiply_by_two ; /* Go
back to multiply_by_two label */
Examples of Array Initialization
int grade [ 6 ] = { 65, 55, 70,
65, 95 }
float sales_in_million [ 12 ]
= { 50.5 , 12.8 , 7.4 , 9.9 , 46.9 }
char month [ 12 ] = {
''JAN'',''FEB'',''MAR'',''APR'',''MAY'',''JUN'',
''JUL'',''AUG'',''SEP'',''OCT'',''NOV'',''DEC''
}
Example showing equivalent
string initializations
char str [ ] = { 'i','n','i','t','i','a','l','i','z','a','t','i','o','n','\0'
}
/* simpler initialization of
a string */
char str [ ] = ''initialization''
;
Example showing array advantage
on regular variables
Averaging 10 floats using regular
variables
float x0, x1, x2, x3, x4, x5, x6, x7, x8, x9 ;
float average = 0.0 ;
average = ( x0 + x1 + x2 + x3
+ x4 + x5 + x6 + x7 + x8 + x9 ) / 10.0 ;
Now computing the average
of 500 floats using an array
int i ;
float x [ 500 ] ;
float average = 0.0 ;
for ( i = 0 ; i < 500 ; i++
) average + = x[i] ;
average = average / 500 ;
Go back to lecture menu
Go back to main page