Você está na página 1de 16

Treinamento em linguagem C


Baseado no capítulo 4

Victorine Viviane Mizrahi

2ª Edição

Curso completo em um volume

Biblioteca virtual UESC

Comandos de decisão

Desvio condicional

Seleção condicional

Estrutura de seleção

1
Teoria
Página 84


Uma das tarefas fundamentais de qualquer
programa é decidir o que deve ser executado a
seguir. Os comandos de decisão permitem
determinar qual é a ação a ser executada com
base no resultado de uma expressão condicional.
Isso significa que podemos selecionar entre ações
(conjunto de instruções/comandos) alternativas,
dependendo de critérios desenvolvidos no decorrer
da execução do programa.

A linguagem C oferece três comandos de decisão:

if if-else switch-case

se se-então selecione-caso 2
if
Instrui o computador a tomar uma decisão
simples. Se expressão de teste retornar
verdadeiro, as instruções de 1 a n serão
executadas. Se expressão de teste retornar
falso, nenhuma instrução será executada.

Sintaxe:

if(expressão de teste){
instrução 1;
instrução 2;
.
.
.
instrução n;
} 3
if (expressão de teste)

if(a>b) ●
If(1 || 2)

if((x-5) >= 7) ●
if(x && y)

If(32< b) ●
if((x-5) &&(y+3)

If((a+b) <= c) ●
if((a>=5)&&(x<=6*y))

if(op == ‘s’) ●
if(dia==7)&&(mes==6))

if(op !=’s’) ●
if(op==’S’)||(op==’s’))

If(!(x)) ●
if(

if((x%2)==0)

4
Programa que conta oito
#include<stdio.h>
int main(){
int nro, cont=0;
scanf(“%i”,&nro);
if(nro==8){
printf(“Número oito foi detectado\n”);
cont++;
}
printf(“Foram digitados %d números oito.\n”, cont);
return 0;
}

5
if aninhados
#include <stdio.h>
int main(){
char ch;
scanf(“%c%*c”,&ch);
if(ch>=’a’){
if(ch<=’z’){
printf(“você digitou uma letra
minúscula.\n”);
}
}
return 0;
}
6
if-else
Este comando é a Sintaxe:
expansão do if.
Instrui o computador if(expressão de teste){
a tomar uma decisão instrução 1;
composta. Se a instrução 2;
expressão de teste
...
retornar verdadeiro,
as instruções de 1 a instrução n;
n serão executadas. }else{
Se expressão de
instrução A;
teste retornar
falso, as instruções instrução B;
de A a Z serão ...
executadas. instrução Z;
}
7
Programa conta oito (modificado)
#include<stdio.h>
int main(){
int nro, cont=0;
scanf(“%i”,&nro);
if(nro == 8){
printf(“número oito detectado\n”);
cont++;
}
if(cont > 0){
printf(“Foram digitados %d números oito.\n”, cont);
}else{
printf(“Foi digitado nenhum número oito.\n);
}
return 0;
}
8
if-else aninhados

if(x > y){ if(x > y){


if(y != 0){ if(y != 0){
a = x/y; a = x/y;
} }else{
}else{ a = y;
a = y; }
} }
Quando será executada a
instrução a = y?
9
#include <stdio.h> /* Para chamar printf() */
int main(){/* início da função main */
float n1,n2;
char op;
scanf("%f%c%f",&n1,&op,&n2);
if-else aninhados

if(op=='+'){ //inicio if-else1


printf("\n%f",n1+n2);
}else{ if(op=='-'){ //inicio if-else2
printf("\n%f",n1-n2);
}else{ if(op=='*'){ //inicio if-else3
printf("\n%f",n1*n2);
}else{ if(op=='/'){ //inicio if-else4
printf("\n%f",n1/n2);
}else{
printf("\nOperador inválido!");
} //fim if-else4
} //fim if-else3
} //fim if-else2
} //fim if-else1
return 0; //retorna informação de sucesso para o SO.
} // Fim do corpo da função main 10
if e operadores lógicos
#include <stdio.h>
int main(){
int dia, mes;
scanf(“%d%*c%d%*c”,&dia,&mes);
if(dia==25 && mes==12){
printf(“FELIZ NATAL!\n”);
}else{
printf(“Bom dia!\n”);
}
return 0;
}
11
if e operadores lógicos
#include <stdio.h>
int main(){
char op;
scanf(“%c%*c”,&op);
if(op==’S’ || op==’s’){
printf(“Opção escolhida: Sim!\n”);
}
return 0;
}
12
switch-case

O comando switch-case permite seleciona um
entre várias alternativas

If-else pode fazer a mesma coisa!

Switch-case pode ter um formato mais limpo e
claro!

Este comando consiste da palavra switch
seguida da variável ou constante numérica
entre parênteses.

O corpo do comando é composto de vários
“case”, os quais devem ser rotulados com uma
constante e, opcionalmente, um case default
13
switch-case
switch(variável ou constante){
case constante1:{ instrução1...n;
break;}
case constante2:{ instrução1...n;
break;}
...
default:{instrução1...n;
} Na falta do break, todas as instruções a partir
do “case” escolhido serão executadas, mesmo
} sendo pertencentes a outro/s “case”!
14
#include <stdio.h>
int main(){
int nro;
scanf(“%d”, &nro);
switch(nro){
switch-case

case 1:{ printf(“Digitado nro 1\n”);


break;}
case 2:{ printf(“Digitado nro 2\n”);
break;}
case 3:{ printf(“Digitado nro 3\n”);
break;}
default:{ printf(“Entrada
inválida!\n);}
}
return 0;
} 15
switch-case

Modifique o programa calculadora!(slide
10)

Substitua o comando if-else, por switch-
case, fazendo todas as alterações
necessárias!

16

Você também pode gostar