You are on page 1of 25

Prof.

Edcleisson Martinez Zanardi (Dinho)


Desvio condicional
Para que a execuo de um algoritmo seja desviada para
uma outra ao, necessrio um comando de desvio.

Esse desvio tem por finalidade representar a tomada de


uma deciso.

Para esta tomada de deciso, necessrio testar condies,


utilizando operadores relacionais e lgicos.
Operadores relacionais
Permitem realizar a comparao de contedos das variveis

A igualdade dada pelo sinal ==;


A desigualdade dada pelos sinais !=;
Maior que, pelo smbolo >;
Menor que, pelo smbolo <;
Maior ou igual, pelo smbolo >=;
Menor ou igual, pelo smbolo <=;
Operadores lgicos
Pode ser que se necessite trabalhar com o relacionamento
de duas ou mais condies ao mesmo tempo, no desvio
condicional.

Nesses casos se torna necessrio trabalhar com operadores


lgicos ou booleanos, que so: && (E/AND), || (OU/OR) e
!(NO/NOT).
Operador lgico: &&
Tambm chamado de conjuno.

Todas as expresses condicionais componentes de uma


conjuno devem ser verdadeiras para que a expresso
resultante tenha valor verdadeiro.
Condio 1 Condio 2 Resultado
Verdadeira Verdadeira Verdadeira
Verdadeira Falsa Falsa
Falsa Verdadeira Falsa
Falsa Falsa Falsa
Operador lgico: ||
Tambm chamado de disjuno.

Quando qualquer uma das expresses componentes da


disjuno for verdadeira, a expresso resultante ter valor
verdadeiro.
Condio 1 Condio 2 Resultado
Verdadeira Verdadeira Verdadeira
Verdadeira Falsa Verdadeira
Falsa Verdadeira Verdadeira
Falsa Falsa Falsa
Operador lgico: !
Tambm chamado de negao.

A negao apenas inverte o valor verdade da expresso. Se


um valor for falso, o no deste valor verdadeiro.
Condio Resultado
Verdadeira Falsa
Falsa Verdadeira
Desvio condicional simples
O comando para que se realize o desvio condicional simples
dado pelo comando if .

Dentro deste bloco podemos ter vrios comandos de atribuio,


operaes lgicas e aritmticas, e tambm novos blocos de
desvio condicional.

if (condio) {

lista de comandos...

}
Desvio condicional simples
Exemplo:

int x, y;
x = 100;
y = 20;
if (x > y) {
x = y;
y = 0;
}
Desvio condicional composto
No desvio condicional composto, as condies verdadeiro ou
falso podem gerar aes atravs de um nico comando de desvio
condicional.

Adiciona-se o operador else na estrutura condicional.

if (condio) {
lista de comandos...
}
else {
lista de comandos...
}
Desvio condicional composto
Exemplo:

if (x > y) {
x = y;
y = 0;
}
else {
y = x;
x = 1;
}
Desvio condicional encadeado
Tambm chamado de desvio condicional aninhado.
Existem casos em que necessrio se estabelecerem verificaes
de condies sucessivas.
Quando uma ao executada, ela poder ainda estabelecer
novas condies, isso significa condies dentro de condies.
if (condio1) {
lista de comandos...
}
else {
if (condio2) {
lista de comandos...
}
else {
lista de comandos...
}
}
Desvio condicional encadeado
Exemplo:
if (x > y) {
x = y;
y = 0;
}
else {
if (x < y) {
y = x;
x = 1;
}
else {
x = 0;
y = 1;
}
}
Deciso de mltipla escolha
Existem problemas em que uma expresso ou uma varivel
podem assumir diversos valores e que, para cada valor
assumido, comandos diferentes sero executados.

Para essas situaes, utilizamos as estruturas de mltipla


escolha.
switch (varivel) {
case valor1:
lista de comandos...
case valor2:
lista de comandos...
default:
lista de comandos...
}
Deciso de mltipla escolha
Exemplo:
int diaDaSemana = 1;
switch (diaDaSemana) {
case 1:
nomeDiaSemana = Domingo;
case 2:
nomeDiaSemana = Segunda-feira;
case 3:
nomeDiaSemana = Tera-feira;
case 4:
nomeDiaSemana = Quarta-feira;
case 5:
nomeDiaSemana = Quinta-feira;
case 6:
nomeDiaSemana = Sexta-feira;
case 7:
nomeDiaSemana = Sbado;
default:
nomeDiaSemana = Dia invlido;
}
Exerccios
1) Dado um nome, exiba-o se for informado.

2) Dado uma idade, exiba se maior ou menor de idade.

3) Dado uma nota, se maior ou igual a 5, exiba aprovado, seno


exiba reprovado.

4) Dado dois nmeros, exiba o maior.


Exerccios
5) Dado um nmero, exibir se positivo ou negativo.

6) Dado um nmero, exibir se par ou impar.

7) Dado dois nmeros calculem o dobro do primeiro mais a


metade do segundo.

8) Dado dois nmeros calculem a soma do triplo do primeiro


mais o segundo.
Exerccios
9) Dado uma letra, exiba uma mensagem: masculino (para M),
feminino (para F) ou sexo invlido (qualquer outra).

10) Dado duas nota, calcule a mdia entre elas, e exiba Aprovado
para mdia maior e igual a 7, Recuperao se maior e igual a
5, seno Reprovado.
Estruturas de repetio (lao)
Estrutura de desvio do fluxo de controle utilizada quando
necessrio repetir diferentes aes/instrues dependendo
se uma condio verdadeira ou falsa.

Verifica-se a condio, e caso seja verdadeira, um bloco de


instrues executado.

Aps o final do bloco, a condio verificada novamente, e


caso ela ainda seja verdadeira, o bloco executado
novamente.
Estruturas de repetio (lao)
Deve-se observar que, caso o bloco de cdigo nunca
modificar o estado da condio, a estrutura ser executada
para sempre, uma situao chamada lao infinito.

Da mesma forma, possvel especificar uma estrutura em


que o bloco de cdigo modifica o estado da condio, mas
esta sempre verdadeira.

possvel especificar uma palavra reservada para sair da


estrutura de repetio, quebrando o lao.
Repetio pr-testada
Nesta estrutura, a condio primeiramente verificada, e se
for verdadeira, o bloco executado.

Utiliza-se o comando while:

while (condio) {
instrues
}
Repetio ps-testada
uma variao da construo anterior, e difere pois a
verificao da condio feita aps uma execuo do bloco.

Utiliza-se o comando do ... while:

do {
instrues
}
while (condio)
Repetio com varivel de controle
estrutura de repetio que designa uma varivel de controle
para cada iterao do bloco, e uma operao de passo a
cada iterao.

Utiliza-se o comando for:

for (varivel; condio; passo) {


instrues
}
Exerccios
1) Exiba os nmeros de 1 a 10.

2) Construa um algoritmo que mostre somente os nmeros


pares de 1 a 20.

3) Construa um algoritmo que mostre somente os nmeros


mpares de 1 a 20.

4) Construa um algoritmo que exiba todos os nmeros


mltiplos de 3 at o nmero 60.
Exerccios
5) Dado um nmero de 1 a 10, exiba a tabuada dele.

6) Dado um nmero de 1 a 10, exiba a tabuada dele e ao final


perguntar se quer fazer outra tabuada.

7) Construa um algoritmo que pea para o usurio digitar 10


nmeros e exiba o maior nmero digitado.

8) Construa um algoritmo que pea dois nmeros inteiros e


gere os nmeros inteiros que esto no intervalo entre eles.

You might also like