Você está na página 1de 11

LP - 04 - Programação com Decisão e

Operadores Lógicos

Lógica de
Programação

Fabrício Curvello Gomes

Programação Com Decisão
e
Operadores Lógicos

Fabrício Curvello Gomes 1


LP - 04 - Programação com Decisão e
Operadores Lógicos

Programação Com Decisão

Decisões, Condições e Operadores Relacionais
Condição – É uma obrigação que se impõe e se aceita.

Decisão – É o ato ou efeito de decidir, de tomar uma decisão.

O ato de tomar uma decisão está calcado no fato de haver uma


condição.

Do ponto de vista computacional, condição é uma expressão


booleana cujo resultado é um valor lógico falso ou verdadeiro.

Para ter uma expressão booleana como condição, usa‐se uma


relação lógica entre dois elementos e um operador relacional.

Serão utilizados os operadores lógicos apresentados no capítulo 3.


4

Fabrício Curvello Gomes 2


LP - 04 - Programação com Decisão e
Operadores Lógicos

Desvio Condicional Simples

N S
Condição
...
if (<condição>) {
Instruções executadas 
<instruções para
quando condição  condição verdadeira>
verdadeira }
<instruções para condição
falsa ou após ser
verdadeira>

Instruções executadas quando 
condição for falsa ou após ser 
verdadeira 

Desvio Condicional Simples (Cont.)
Exemplo: Algoritmo para ler dois valores numéricos, efetuar a adição e
apresentar o resultado se o valor for maior que 10.

Início

“Digite 2 
números” package controller;
import util.Teclado;
public class DesvioCondicionalSimples {
a, b public static void main(String[] args) {

int a, b, x;
x = a + b
a = Teclado.lerInt("Informe o primeiro núm.:");
b = Teclado.lerInt("Informe o segundo número:");
N S x = a + b;
x > 10
if (x > 10) {
“O valor  System.out.println("O valor da soma é " + x);
da soma  }
é” + x
}
}

Fim 6

Fabrício Curvello Gomes 3


LP - 04 - Programação com Decisão e
Operadores Lógicos

Desvio Condicional Composto

N S
Condição ...
if (<condição>) {
<instruções para
Instruções  Instruções 
condição verdadeira>
executadas  executadas 
quando condição  quando condição 
} else {
falsa verdadeira <instruções para
condição falsa>
}

Desvio Condicional Composto (Cont.)
Exemplo: Algoritmo para ler dois valores numéricos, efetuar a adição. Se a soma
for maior ou igual a 10, apresente o resultado somando 5, senão, apresente o
resultado subtraindo 7.

Início

“Digite 2  package controller;


números:” import util.Teclado;
public class DesvioCondicionalComposto {
public static void main(String[] args) {
a, b
int a, b, x;
x = a + b
a = Teclado.lerInt("Primeiro núm.?");
b = Teclado.lerInt("Segundo número?");
N S x = a + b;
x >=10
“O resultado é  if (x >= 10){
“O resultado 
é menor que   maior ou igual  System.out.println("O resultado + 5 é " + (x + 5));
10, então,  a 10, então, 
somando 5, o 
}else{
subtraindo 7, 
o resultado é”  resultado é” +  System.out.println("O resultado - 7 é " + (x - 7));
+  (x ‐7)” (x + 5)” }
}
}

Fim 8

Fabrício Curvello Gomes 4


LP - 04 - Programação com Decisão e
Operadores Lógicos

Desvios Condicionais Encadeados

N Condição  S
1

N Condição 
S Instruções executadas 
2 quando condição1 
verdadeira

Instruções executadas 
Instruções executadas 
quando condição1 
quando condições 1 e 
falsa, mas a condição 
2 são falsas
2 é verdadeira

Desvios Condicionais Encadeados (Cont.)
Exemplo: Elaborar um programa que calcule o reajuste de salário de um funcionário, sob as seguintes
condições: Reajuste de 15% se salário menor que R$ 500,00. Reajuste de 10% se salário entre R$
500,00 e R$ 1000,00. Reajuste de 5% se salário acima de R$ 1000,00.

Início

“Digite o 
Salário:”

Sal

N Sal <  S
500
N Sal <=  S SalNovo = Sal * 1.15
1000

SalNovo = Sal * 1.05 SalNovo = Sal * 1.10

“O Salário com 
reajuste 
é:”,SalNovo

Fim 10

Fabrício Curvello Gomes 5


LP - 04 - Programação com Decisão e
Operadores Lógicos

Desvios Condicionais Encadeados (Cont.)
Exemplo: Elaborar um programa que calcule o reajuste de salário de um funcionário, sob
as seguintes condições: Reajuste de 15% se salário menor que R$ 500,00. Reajuste de 10%
se salário entre R$ 500,00 e R$ 1000,00. Reajuste de 5% se salário acima de R$ 1000,00.

package controller;
import util.Teclado;
public class DesvioCondicionalEncadeado {
public static void main(String[] args) {
double sal, salNovo;
sal = Teclado.lerDouble("Digite o Salário: ");
if (sal < 500){
salNovo = sal * 1.15;
}else{
if (sal <= 1000){
salNovo = sal * 1.10;
}else{
salNovo = sal * 1.05;
}
}
System.out.println("O Salário com reajuste é: " + salNovo);
}
}

11

Operadores Lógicos

Fabrício Curvello Gomes 6


LP - 04 - Programação com Decisão e
Operadores Lógicos

Operadores Lógicos 
Conforme já foi visto no Capítulo 3, segue novamente a tabela verdade 
dos operadores lógicos:

A B NÃO A NÃO B A E B A OU B A XOU B


VERDADEIRO VERDADEIRO FALSO FALSO VERDADEIRO VERDADEIRO FALSO
VERDADEIRO FALSO FALSO VERDADEIRO FALSO VERDADEIRO VERDADEIRO
FALSO VERDADEIRO VERDADEIRO FALSO FALSO VERDADEIRO VERDADEIRO
FALSO FALSO VERDADEIRO VERDADEIRO FALSO FALSO FALSO

13

Operador Lógico E  ‐ &&

N Condição1  S
e  ...
Condição2 if ((<condição1>) &&
(<condiçao2>)) {
Instruções executadas 
<instruções executadas se
se ambas as 
condições forem 
ambas forem verdadeiras>
verdadeiras }

14

Fabrício Curvello Gomes 7


LP - 04 - Programação com Decisão e
Operadores Lógicos

Operador Lógico E  ‐ &&      (Cont.)
Algoritmo que testa se um numero dado está na faixa de 20 a 90.

Início package controller;


import util.Teclado;
public class OperadorLogicoE {
“Digite o 
public static void main(String[] args) {
Número:” int num;
num = Teclado.lerInt("Digite um número:");
if ((num >= 20) && (num <= 90)) {
System.out.println("Número está entre 20 e 90");
num } else {
System.out.println("Número não está entre 20 e 90");
}
}
N num >=20  S }
e
num <=90

“Número não  “O número 
está entre está entre 
20 e 90 20 e 90”

Fim
15

Operador Lógico OU  ‐ ||

N Condição1  S
ou  ...
Condição2 if ((<condição1>) ||
(<condiçao2>)) {
Instruções executadas 
<instruções executadas se
se pelo menos uma 
das condições for 
pelo menos uma das
verdadeira condições for verdadeira>
}

16

Fabrício Curvello Gomes 8


LP - 04 - Programação com Decisão e
Operadores Lógicos

Operador Lógico OU  ‐ ||    (Cont.)
Algoritmo que testa se um número é menor que 20 ou maior que 40.
Início package controller;
import util.Teclado;
public class OperadorLogicoOu {
“Informe um  public static void main(String[] args) {
número:” int num;
num = Teclado.lerInt("Informe um número:");
if ((num < 20) || (num > 40)){
System.out.println
num ("O número é menor que 20 ou maior que 40");
} else {
System.out.println
num < 20  ("O número está entre 20 e 40");
N ou num >  S }
40 }
}
“O número  “O número é 
está entre 20  menor que 20 ou 
e 40” maior que 40”

Fim

17

Operador Lógico NÃO  ‐ !

N Não  S
...
Condição
if (!(<condição>)) {
<Instruções executadas
Instruções executadas  caso a condição não seja
caso a condição não  verdadeira>
seja verdadeira }

18

Fabrício Curvello Gomes 9


LP - 04 - Programação com Decisão e
Operadores Lógicos

Operador Lógico NÃO  ‐ !     (Cont.)
Observe o que este algoritmo faz:
Início package controller;
import util.Teclado;
public class OperadorLogicoNao {
“Informe 3 
public static void main(String[] args) {
números:”
int a, b, c, x;
a = Teclado.lerInt("Informe o primeiro número:");
b = Teclado.lerInt("Informe o segundo número:");
a, b, x x = Teclado.lerInt("Informe o terceiro número:");
if (! (x > 5)){
c = (a + b) * x; Na verdade, esta 
} else { sentença equivale a:
N S c = (a ‐ b) * x; if (x < 5) {
Não (x > 5) }
System.out.println("Valor de c:" + c);
}  
}
c =  (a – b) * x c = (a + b) * x

“Valor de 
c:” + c

Fim 19

Operador Lógico XOU  ‐ ^

N Condição1  S
xou ...
Condição2 if ((<condição1>) ^
(<condição2>))
Instruções executadas 
caso a condição1 ou a  <Instruções executadas
condição 2 seja  caso a condição1 ou a
verdadeira, mas não  condição2 seja verdadeira,
ambas. mas não ambas>
}

20

Fabrício Curvello Gomes 10


LP - 04 - Programação com Decisão e
Operadores Lógicos

Operador Lógico XOU  ‐ ^     (Cont.)
Algoritmo que testa se um número é menor que 80 ou maior que 60, mas não
ambos, ou seja, números entre 60 e 80 serão descartados.

Início

“Informe um  package controller;


número:” import util.Teclado;
public class OperadorLogicoXou {
public static void main(String[] args) {
num int num;
num = Teclado.lerInt("Informe um número:");
if ((num < 80) ^ (num > 60)) {
System.out.println
num < 80  ("O número é menor que 80 ou maior que 60, "
N xou num >  S + "mas não ambos");
60 } else {
“O número é  System.out.println
“O número  menor que 80 ou  ("O número está entre 60 e 80");
está entre 60  maior que 60, 
e 80”
}
mas não ambos”
}
}

Fim
21

Dúvidas?

22

Fabrício Curvello Gomes 11

Você também pode gostar