programação i aula 4 (expressões booleanas e expressões de seleção) prof. gilberto irajá...

28
Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Upload: internet

Post on 22-Apr-2015

134 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Programação IAula 4

(Expressões Booleanas eExpressões de Seleção)

Prof. Gilberto Irajá MüllerProf. Gilberto Irajá Müller

Última atualização 17/3/2009

Page 2: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Expressões Booleanas• O tipo primitivo boolean

• É um tipo de dados primitivo em Java que possui somente dois valores: true e false

• Exemploboolean b = false;

• Uma expressão booleana é aquela cujo resultado é um tipo booleano (true ou false)

• Podemos distinguir duas formas principais: • as expressões relacionais e • as expressões lógicas.

Page 3: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Expressão Relacional• Permite comparar dois valores através dos

operadores relacionais, como, por exemplo, comparar os valores de duas expressões aritméticas.

Exemplo: x > 5 será true se o valor da variável x for superior a 5a + 7 == 0 será true somente se a variável a tiver valor -7

Page 4: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Expressão Relacional

Page 5: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Expressão Relacional• Exercício 4.1

Sendo double x = 3.5; float y = 2; boolean vLog = true; qual o resultado de cada expressão relacional abaixo?

x >= 0 _________________x – 1.5 == y _________________vLog __________________y != 2 __________________

Page 6: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Expressão Lógica• É uma expressão que utiliza operador(es)

lógico(s) e dá, também, um resultado true ou false

Page 7: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Expressão Lógica• Exercício 4.2

Sendo double x = 3.5; float y = 2; boolean vLog = true; qual o resultado de cada expressão relacional abaixo?

!vLog _______________x – 1.5 == y && x <= 0 ________________x – 1.5 == y || x <= 0 ________________vLog || x >= 0 && y != 6 _________________

Page 8: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Instruções Condicionais• Instruções podem ser executadas ou não,

dependendo de certa condição. Isso enriquece a lógica dos programas e pode ser feito com as instruções if, if-else e switch.

• Também é chamada de instrução de seleção

• Sintaxe do IF (observe que o primeiro não possui {})if (condicao)

comando;

if (condicao) {comando;

}

Page 9: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Instruções Condicionais• Onde:

condição é qualquer valor ou expressão booleanacomando é qualquer instrução válida da linguagem

• Os comandos somente serão executados se a expressão de condição for verdadeira

• Caso o comando tenha apenas uma “linha”, então, não haverá necessidade de colocar bloco { ... }

Page 10: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Instruções Condicionais• Exemplo com apenas um comando

if (i > 0)System.out.println(i + “ é um valor

positivo”);

• Exemplo com mais de uma linha de comandosif (d == 5 && i <= 0) {

k += 1;System.out.println(“d é 5.5 i é

negativo!”);p = Math.pow(2, 3); // 2 elevado na 3

}

Page 11: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Instruções Condicionais• Exercício 4.3

Escreva um método situacaoIMC() na classe Pessoa, onde este receberá um valor real e retornará o status de “Problema”, caso esse número seja maior que 30.0. Caso contrário, “Normal”.

Page 12: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Instruções Condicionais• Exercício 4.4

Escreva um método aumentaSalario() para a classe Funcionário, que receberá um valor real (percentual) e um valor de bônus como parâmetros. Se o salário atual for maior que $5000.0, então, o aumento de salário não será calculado. Para salários abaixo de $1000.0, será acrescentado o bônus ao salário atual, além do acréscimo.

Page 13: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Instruções Condicionais• Sintaxe do IF-ELSE (Observe que o primeiro não

possui {})if (condicao) (

comando1;else

comando2;

if (condicao) {comando1;

}else {

comando2;}

Page 14: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Instruções Condicionais• Exemplo

String msg = “”;if (k != 0)

msg = “A variável k não é nula”;else

msg = “A variável k é nula”;

Page 15: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Instruções Condicionais• Exemplo

if (numPrestacoes > 3) {juros = precoTabela * 0.1;precoFinal = precoTabela + juros;

}else {

precoFinal = precoTabela;}

Page 16: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Instruções Condicionais• Exercício 4.5

Crie um método que receba dois números inteiros e retorne qual o maior número

Page 17: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Instruções Condicionais• Exercício 4.6

Altere o método situacaoIMC() da classe Pessoa, onde este receberá um valor real e retornará o status de “Problema”, caso esse número seja maior que 30.0. Caso contrário, “Normal”. Utilize IF...ELSE

Page 18: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Instruções Condicionais• IF...ELSE IF

Exemploif (idade < 10)

faixaEtaria = “Criança”;else if (idade < 18)

faixaEtaria = “Jovem”;else if (idade < 50)

faixaEtaria = “Adulto”;else if (idade < 80)

faixaEtaria = “Terceira idade”;else

faixaEtaria = “Quarta idade”;

Page 19: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Instruções Condicionais• Exercício 4.7

Altere o método situacaoIMC() e acrescente a seguinte informação:• Abaixo de 18.5 (“Você está abaixo do peso ideal”)• Entre 18.5 a 24.9 (“Parabéns – você está em seu peso

normal”)• Entre 25.0 a 29.9 (“Você está acima de seu peso

sobrepeso”) • Entre 30.0 a 34.9 (“Obesidade grau I”)• Entre 35.0 a 39.9 (“Obesidade grau II”)• A partir de 40.0 (“Obesidade grau III”)

Page 20: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Hot Topic• Comparando objetos

Exemplo:Pessoa p1 = new Pessoa(“João da Silva”, 1.80, 80.0, 30);Pessoa p2 = new Pessoa(“João da Silva”, 1.80, 80.0, 30);

if (p1 == p2)System.out.println(“São iguais!”);

elseSystem.out.println(“Não são iguais!”);

• RETORNARÁ FALSE, POIS SÃO OBJETOS DIFERENTES, EMBORA COM OS MESMOS ATRIBUTOS

• NÃO UTILIZE == PARA VERIFICAR SE OS OBJETOS SÃO IGUAIS

Page 21: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Hot Topic• Comparando objetos

• Consulte na bibliografia o método equals, compareTo e compare

• A alternativa utilizada para comparar objetos é implementar o método equals, em nosso caso, da classe Pessoa. Solicite ao professor um exemplo por e-Mail

Page 22: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Hot Topic• Verificando se uma determinada variável não

possui a referência ao objeto, ou seja, não foi instanciada

ExemploPessoa p1;Pessoa p2 = new Pessoa(“João da Silva”, 1.80, 80.0, 30);

if (p1 == null) Resposta: ________________

if (p2 == null) Resposta: ________________

Page 23: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Hot Topic• Comparando objetos do tipo String

• O tipo String não é um tipo primitivo como os numéricos que vimos (int, double, byte, etc.).

• String é uma classe Java (Java.lang.String). Quando definimos um string, criamos um objeto do tipo String, o que pode ser feito de diversas maneiras, pois a classe String possui diversos construtores sobrecarregados. Destacamos aqui duas formas usuais:

• String s1 = "Blablu"; // declaração string implícita• String s2 = new String ("Blablu"); // declaração string

explícita

• Sendo objetos, não podemos comparar o conteúdo dos dois strings com o operador ==. A classe String possui vários métodos úteis. Um deles é o equals que permite comparar dois strings.

Page 24: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Hot TopicExemploif (s1.equals(s2)).... // dará true.if (s1.equals(“blablu”)) ...// dará_______porque____________________________

• Para comparar dois strings ignorando a distinção entre maiúsculas e minúsculas, usa-se o método equalsIgnoreCase da classe String.• Exemplo• if(s1.equalsIgnoreCase(“blablu”)) ... //Agora sim, dará

true.

Page 25: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Hot Topic• Se dois strings não são iguais, um vem antes do

outro no ordenamento lexicográfico (ordem do dicionário), o que pode ser descoberto com o método compareTo: string1.compareTo(string2) < 0 indica que o string1 vem antes do string2 na ordem lexicográfica. Igual a 0, significa que são exatamente iguais e, maior que 0, indica que a string1 vem depois da string2.

Exemplo:if(s1.compareTo(“Bla”)<0)

dará______porque ___________________________________

Page 26: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Hot Topic• Constantes com nome – final

• Em Java, podemos dar nome a uma constante, através do modificador final

• É declarada como uma variável, mas deve ser inicializada obrigatoriamente na declaração, e não poderá mudar de valor durante o programa

• É convenção usar letras maiúsculas para nome de constantes

• É declarada no início da classe, juntamente com os atributos

Sintaxe:final tipo nome = valor;

Exemplo:final double SALARIO_MINIMO = 400.0;

Page 27: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Hot TopicExemplopublic void nivelaSalario(){

final double SALARIO_MINIMO = 350.00;if (salario < SALARIO_MINIMO)

salario = SALARIO_MINIMO;}

O que o método acima está fazendo?

Page 28: Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009

Métodos• Referências bibliográficas

• http://inf.unisinos.br/~anibal• http://www.google.com.br