Você está na página 1de 17

Laboratrio de Introduo Cincia da Computao I

Aula 2 Comandos de Deciso


Professores: Vanderlei Bonato (responsvel) - vbonato@icmc.usp.br Luiz Henrique Kiehn (aluno PAE) - lhkiehn@icmc.usp.br
15/03/2010 1

Sumrio
Comandos
if if-else if/if-else aninhados else-if switch

Operadores lgicos Operador ternrio Exerccios

15/03/2010

Comando if
if (expresso de teste)
instruo;

if (expresso de teste) {
Instruo_1; Instruo_2; ... Instruo_n;

}
15/03/2010 3

Comando if
Exemplo:
int main() { char ch; ch = getche(); if (ch == 'p') { printf("\n Voce pressionou a tecla p.\n"); } system("pause" ); }

15/03/2010

Comando if-else
if (expresso de teste) instruo_1; else instruo_2; if (expresso de teste) { instruo_1; Instruo_2; ... Instruo_n; } else { instruo_1; instruo_2; ... Instruo_n; }

15/03/2010

Comando if-else
Exemplo:
int main() { char ch; ch = getche(); if (ch == 'p') { printf("\n Voce pressionou a tecla p.\n"); } else { printf("\n Voce no pressionou a tecla p.\n"); } system("pause" ); }
15/03/2010 6

Comando if/if-else aninhados


if (expresso de teste_1) if (expresso de teste_2) instruo_1; else instruo_2; else instruo_3;

15/03/2010

int main() { char ch1, ch2; printf("\n Entre caractere 1:"); ch1 = getche(); if (ch1 == 'p') { printf("\n Entre caractere 2:"); ch2 = getche(); if (ch2 == 'q') { printf("\n Voc digitou p e q.\n"); } else { printf("\n Voc digitou p e no q.\n"); } } else { printf("\n Voce NO digitou p e q.\n"); } system("PAUSE"); } 15/03/2010

Exemplo de if/if-else aninhados

Comando <else if>


if (expresso de teste_1) instruo_1; else if (expresso de teste_2) instruo_2;

15/03/2010

Operadores para expresses de teste


Relacionais > maior >= maior ou igual < menor <= menor ou igual == igualdade != diferente Lgicos && E || OU ! Negao (unrio)
15/03/2010 10

int main() { char ch1, ch2; printf("\n Entre caractere 1:"); ch1 = getche(); printf("\n Entre caractere 2:"); ch2 = getche(); if (ch1 == 'p' && ch2 == 'q') { printf("\n Voc digitou p e q.\n"); } else if (ch1 == 'p' || ch2 == 'q') { printf("\n Voc digitou p ou q.\n"); }

Exemplo com operadores lgicos

O que acontece se retirarmos os parnteses do operador unrio <!> ?

if (!(ch1 == 'p') && !(ch2 == 'q')) { printf("\n Voc NO digitou p e nem q.\n"); } system("PAUSE"); }
15/03/2010 11

Precedncia de operadores
Operador ! - ++ -* / % + < <= > >= == != && || += -= *= /= %=
15/03/2010

Tipo Lgico e Aritmtico (unrios) Aritmtico Aritmtico Relacional Relacional Lgico Aritmtico de atribuio
12

Comando switch
Comando de deciso alternativo ao <else-if> Considerado mais flexvel e de formato mais claro, principalmente quando o programa precisa escolher uma entre vrias alternativas de deciso

15/03/2010

13

Comando switch
switch (expresso constante) { case constante_1: instruo_1; ... instruo_n; break; case constante_2: instruo_1; ... instruo_n; break; default: instruo_1; ... instruo_n; }
15/03/2010

O que ocorre se remover o <break> ?

14

int main() { float num1, num2; char op; printf("Digite na seguinte ordem: valor 1 \"operador\" valor 2 \n"); scanf("%f %c %f", &num1, &op, &num2); switch(op) { case '+': printf(" = %f\n",num1 + num2); break; case '-': printf(" = %f\n",num1 - num2); break; default: printf("Operador desconhecido \n"); } system("PAUSE"); }
15/03/2010

Exemplo com switch

15

Operador condicional ternrio


Maneira compacta de expressar um simples instruo if-else nico operador ternrio em C condio ? expresso_1 : expresso_2

Exemplo: max = (num1 > num2) ? num1 : num2;


15/03/2010 16

Referncias
Ascencio AFG, Campos EAV. Fundamentos de programao de computadores. So Paulo : Pearson Prentice Hall, 2006. 385 p. VICTORINE VIVIANE MIZRAHI, Treinamento em Linguagem C Mdulo 1 e Mdulo 2, Makron Books, 1990.

15/03/2010

17