Estruturas condicionais
() Elementos de programao em C 1 / 17
Sumrio
1 Comando if
2 Comando switch
3 Obrigaes de prova
4 Manutenibilidade
5 Bibliografia
() Elementos de programao em C 2 / 17
Comando if
Comando if
() Elementos de programao em C 3 / 17
Comando if Sem clusula-seno
if ( hCondioi ) hClusulaEntoi
Exemplo
# include < stdio .h >
int main ( void ) {
int a ;
scanf ("% d " , & a );
if ( a > 30) {
printf ("% d maior que 30\ n " , a );
a = a - 30;
}
printf ("% d menor ou igual a 30\ n " , a );
return 0;
}
() Elementos de programao em C 4 / 17
Comando if Sem clusula-seno
if ( hCondioi ) hClusulaEntoi
Exemplo
O que impresso pelo
# include < stdio .h > programa ao lado, se for lido
int main ( void ) { o nmero 38?
int a ;
scanf ("% d " , & a );
if ( a > 30) {
printf ("% d maior que 30\ n " , a );
a = a - 30;
}
printf ("% d menor ou igual a 30\ n " , a );
return 0;
}
() Elementos de programao em C 4 / 17
Comando if Sem clusula-seno
if ( hCondioi ) hClusulaEntoi
Exemplo
O que impresso pelo
# include < stdio .h > programa ao lado, se for lido
int main ( void ) { o nmero 38?
int a ;
scanf ("% d " , & a ); Resposta:
if ( a > 30) { 38 maior que 30
printf ("% d maior que 30\ n " , a ); 8 menor ou igual a 30
a = a - 30;
}
printf ("% d menor ou igual a 30\ n " , a );
return 0;
}
() Elementos de programao em C 4 / 17
Comando if Sem clusula-seno
Exemplo
O que impresso pelo # include < stdio .h >
programa ao lado, se for lido int main ( void ) {
o nmero 38? int a ;
scanf ("% d " , & a );
if ( a > 30)
printf ("% d maior que 30\ n " , a );
printf ("% d menor ou igual a 30\ n " , a );
return 0;
}
() Elementos de programao em C 5 / 17
Comando if Sem clusula-seno
Exemplo
O que impresso pelo # include < stdio .h >
programa ao lado, se for lido int main ( void ) {
o nmero 38? int a ;
Resposta: scanf ("% d " , & a );
38 maior que 30 if ( a > 30)
38 menor ou igual a 30 printf ("% d maior que 30\ n " , a );
printf ("% d menor ou igual a 30\ n " , a );
return 0;
}
() Elementos de programao em C 5 / 17
Comando if Com clusula-seno
() Elementos de programao em C 6 / 17
Comando if Com clusula-seno
() Elementos de programao em C 6 / 17
Comando if Com clusula-seno
() Elementos de programao em C 6 / 17
Comando if Comandos aninhados
Comandos if aninhados
Exemplo
# include < stdio .h >
int main ( void ) {
int num , val , taxa ;
scanf ("% d " , & num );
scanf ("% d " , & val );
scanf ("% d " , & taxa );
if ( num > val ) {
printf (" 1 ");
printf (" 2 ");
} else {
if ( val > taxa )
printf (" 3 ");
printf (" 4 ");
}
printf (" 5\ n ");
return 0;
}
() Elementos de programao em C 7 / 17
Comando if Comandos aninhados
Comandos if aninhados
Exemplo
O que impresso pelo programa ao lado, se
# include < stdio .h >
int main ( void ) { a) num for maior que val?
int num , val , taxa ; b) num for menor ou igual a val e val for maior
scanf ("% d " , & num ); que taxa?
scanf ("% d " , & val ); c) num for menor ou igual a val e val for menor
scanf ("% d " , & taxa ); ou igual a taxa?
if ( num > val ) {
printf (" 1 ");
printf (" 2 ");
} else {
if ( val > taxa )
printf (" 3 ");
printf (" 4 ");
}
printf (" 5\ n ");
return 0;
}
() Elementos de programao em C 7 / 17
Comando if Comandos aninhados
Comandos if aninhados
Exemplo
O que impresso pelo programa ao lado, se
# include < stdio .h >
int main ( void ) { a) num for maior que val?
int num , val , taxa ; b) num for menor ou igual a val e val for maior
scanf ("% d " , & num ); que taxa?
scanf ("% d " , & val ); c) num for menor ou igual a val e val for menor
scanf ("% d " , & taxa ); ou igual a taxa?
if ( num > val ) {
printf (" 1 "); Resposta: a) 1 2 5
printf (" 2 "); b) 3 4 5
} else { c) 4 5
if ( val > taxa )
printf (" 3 ");
printf (" 4 ");
}
printf (" 5\ n ");
return 0;
}
() Elementos de programao em C 7 / 17
Comando if Clusulas vazias
if ( a > 5) { }
if ( a > 23) ;
if ( a < 12) { }
else ;
() Elementos de programao em C 8 / 17
Comando switch
Comando switch
() Elementos de programao em C 9 / 17
Comando switch
Comando switch
switch (a * 2) { Avaliao
case 14:
Comparao
case 8:
x = 3 - a; Transferncia
case 4: Finalizao
x = a;
default:
x = 0;
}
() Elementos de programao em C 10 / 17
Comando switch
Comando switch
swicth (a * 2) { Avaliao
case 14: Avalia a expresso.
case 8: Comparao
x = 3 - a;
Transferncia
case 4:
Finalizao
x = a;
default:
x = 0;
}
() Elementos de programao em C 10 / 17
Comando switch
Comando switch
switch (a * 2) { Avaliao
case 14:
Comparao
case 8:
Compara o resultado com os
x = 3 - a; rtulos das clusulas.
case 4:
Transferncia
x = a;
Finalizao
default:
x = 0;
}
() Elementos de programao em C 10 / 17
Comando switch
Comando switch
switch (a * 2) { Avaliao
case 14:
Comparao
case 8:
x = 3 - a; Transferncia
case 4: Transfere o controle para o
comando da primeira clusula
x = a;
com rtulo igual ao da
default: expresso, ou para a clusula
x = 0; default.
} Finalizao
() Elementos de programao em C 10 / 17
Comando switch
Comando switch
switch (a * 2) { Avaliao
case 14:
Comparao
case 8:
x = 3 - a; Transferncia
case 4: Finalizao
x = a; Prossegue com o prximo
default: comando.
x = 0;
}
() Elementos de programao em C 10 / 17
Comando switch
Comando switch
() Elementos de programao em C 11 / 17
Comando switch
Comando switch
() Elementos de programao em C 11 / 17
Comando switch
Comando switch
() Elementos de programao em C 11 / 17
Comando switch Interrompendo a execuo
() Elementos de programao em C 12 / 17
Comando switch Interrompendo a execuo
() Elementos de programao em C 12 / 17
Comando switch Comandos aninhados
() Elementos de programao em C 13 / 17
Comando switch Comandos aninhados
() Elementos de programao em C 13 / 17
Comando switch Situaes especiais
() Elementos de programao em C 14 / 17
Obrigaes de prova
Obrigaes de prova
() Elementos de programao em C 15 / 17
Manutenibilidade
Promovendo a manutenibilidade
() Elementos de programao em C 16 / 17
Bibliografia
Bibliografia
ISO/IEC
C Programming Language Standard
ISO/IEC 9899:2011, International Organization for Standardization;
International Electrotechnical Commission, 3rd edition, WG14/N1570
Committee final draft, abril de 2011.
Francisco A. C. Pinheiro
Elementos de programao em C
Bookman, Porto Alegre, 2012.
www.bookman.com.br, www.facp.pro.br/livroc
() Elementos de programao em C 17 / 17