Parte deste material foi adaptado dos
conteúdos originais dos Professores Fábio Tirelo, Silvio Jamil e Theldo Cruz.
Material da Professora Dulcinéia Oliveira da Penha
Primeira parte aqui: Algoritmos – Estruturas Condicionais – Parte 1 (draddx.com)
Diversas
informações são dependentes de condições.
Por exemplo, SE a nota de um aluno for menor do que
60%, ENTÃO este aluno será
reprovado, SENÃO este aluno será
aprovado.
a) Expressões de comparação
Os operadores de comparação da linguagem
Java são:
b)
Expressões lógicas
Os operadores lógicos da linguagem Java
são:
Eles são utilizados
de forma idêntica aos operadores Not, And e Or bit-a-bit, se considerarmos
verdadeiro como 1 e falso como 0 (zero).
c) Comando
Condicional IF
Para expressarmos uma condição no programa, utilizamos os comandos if e switch. O comando if pode
aparecer de uma das seguintes formas:
if (condição for verdadeira)
comando;
ou
if (condição for verdadeira)
comando;
else //condição falsa outro comando;
Se precisarmos de mais de um comando dentro do IF ou do ELSE, utilizamos chaves:
if (condição for verdadeira){
comando 1;
comando 2;
}
else{ //condição falsa comando 3;
comando 4;
}
Em geral, quando estivermos pensando na lógica do programa, utilizaremos os nomes SE, ENTÃO e SENÃO.
Exemplo 01: Aprovado/Reprovado
Considere que, dada a nota final de um aluno queiramos saber se este aluno foi aprovado ou reprovado. Para este problema, podemos criar o seguinte algoritmo:
Algoritmo:
variável:
nota do tipo inteiro
LEIA nota;
SE nota >=60 ENTÃO
ESCREVA “Aluno aprovado.”;
SE nota < 60 ENTÃO
ESCREVA “Aluno reprovado.”;
Outra forma de escrever este algoritmo é utilizando SENÃO:
Algoritmo:
variável:
nota do tipo inteiro LEIA nota;
SE nota >=60 ENTÃO
ESCREVA “Aluno aprovado.”;
SENÃO
ESCREVA “Aluno reprovado.”;
Este programa em Java:
public class Exemplo01{
public static void main (String [] args){
int nota;
System.out.println(“Verifica se um aluno foi aprovado”);
nota = Integer.parseInt(JOptionPane.showInputDialog(“Qual é a nota do aluno?”));
if (nota >=60)
System.out.println(“Aluno aprovado”);
else
System.out.println(“Aluno reprovado”);
}
}
Exemplo 02: Conceito do Aluno
Considere que, dada a nota final de um aluno, queiramos saber o seu conceito final, dado pela tabela abaixo:
Algoritmo:
variável:
nota do tipo inteiro mensagem do tipo String
LEIA nota;
SE nota < 0 OU nota > 100 ENTÃO
mensagem = “Nota invalida\nExecute o programa novamente”;
SENÃO
SE nota >= 90 ENTÃO
mensagem = “Conceito A”;
SENÃO
SE nota >= 80 ENTÃO
mensagem = “Conceito B”;
SENÃO
SE nota >= 70 ENTÃO
mensagem = “Conceito C”;
SENÃO
SE nota >= 60 ENTÃO
mensagem = “Conceito D”;
SENÃO
mensagem = “Conceito R”;
ESCREVA mensagem;
Este programa em Java:
public class Exemplo02{
public static void main (String [] args){
int nota;
String mensagem;
System.out.println(“Determina o conceito de um aluno”);
nota = Integer.parseInt(JOptionPane.showInputDialog(“Qual é a nota do aluno?”));
if (nota < 0 || nota > 100)
mensagem = “Nota invalida\nExecute o programa novamente”;
else{
if (nota >= 90)
mensagem = “Conceito A”;
else{
if (nota >= 80)
mensagem = “Conceito B”;
else{
if (nota >= 70)
mensagem = “Conceito C”;
else{
if (nota >= 60)
mensagem = “Conceito D”;
else{
mensagem = “Conceito R”;
}
}
}
}
}
System.out.println(mensagem);
}
}
Exemplo 03: Cálculo do Imposto de Renda
Para os exemplos 3 e 4, os cálculos e valores são supostos (o importante aqui são os algoritmos e não os valores).
Exemplo 04: Cálculo do INSS
O INSS é um imposto que possui teto de descontos, isto é, há um valor máximo que pode ser descontado do funcionário. Suponha que o valor do INSS seja de 10%, não podendo ultrapassar o limite de R% 150,00. Desta maneira, podemos calcula o valor do INSS sendo igual a 10% do valor do salário bruto. Se este desconto ultrapassar R$ 150,00, então passamos o valor do desconto para R$ 150,00, o que nos dá o seguinte programa:
Exemplo 05: Escrita de datas por extenso
Faça um algoritmo que leia três números representando dia, mês e ano de uma data e escreva esta data por extenso. Eliminaremos quebras de linhas por questões de espaço.
d) Uma forma alternativa do comando IF
O comando condicional das linhas 12 a 23 contém uma forma especial de condicional, que é a comparação do valor de uma mesma variável com diversos valores, sendo que todas as comparações são feitas por igualdade. Quando este tipo de comparação é feita no programa, em geral fazemos uso do comando SWITCH, por duas razões: eficiência e legibilidade do código.
Este comando verifica se o valor da expressão é algum dos valores especificados nos casos. Se for, executa-se todos os comandos que estiverem abaixo até encontrar um PARE ou terminar o código do comando ESCOLHA. Por exemplo, se não houvesse o PARE após COMANDOS_1, se o valor da expressão fosse valor_1, então os COMANDOS_1 e COMANDOS_2 seriam executados. Entretanto, se o valor fosse valor_2, então somente o COMANDOS_2 seria executado. Se o valor da expressão for diferente de todos os valores especificados, então executa-se a seção DEFAULT.
A seção DEFAULT não é obrigatória, mas se este não for utilizado, deve-se prestar atenção ao que acontecerá caso nenhum dos valores especificados for igual ao valor da expressão.
Podemos reescrever o trecho das linhas 12 a 23 utilizando o comando ESCOLHA da seguinte forma:
-> O comando switch
O código acima pode ser escrito em Java de forma bastante simples, utilizando o comando SWITCH:
O programa completo utilizando switch é o seguinte:
É importante ressaltar que os comandos break são essenciais para que o valor correto seja atribuído à variável.
Além de facilitar a leitura, o uso do comando switch torna o programa mais eficiente, pois o compilador gera uma tabela e evita os vários teste que seriam feitos se utilizássemos comandos if.
Exemplo 07: Validação de datas
Neste exemplo, utilizaremos comando switch para validação de datas, desconsiderando a existência de anos bissextos. Vejamos inicialmente um algoritmo para resolver este problema com condicional IF.
Leremos três números representando a data e utilizaremos o critério de validação abaixo:
o ano pode ser qualquer valor;
o mês deve estar entre 1 e 12;
o dia deve ser um valor a partir de 1 e deve ser no máximo um valor limite, dado de acordo com o mês.
O algoritmo para resolver este problema pode ser:
Regras Básicas do Comando Switch
Quando utilizar o comando switch, é importante lembrar-se de algumas regras básicas:
O comando switch só pode ser utilizado com tipos “enumeráveis”; dentro do que vimos até agora, só pode ser utilizado com int, char e boolean.
O comando switch só pode substituir o condicional if se todas as condições forem de igualdade com uma única variável.
Nunca se esqueça de utilizar o break após os comandos de cada caso.
Comentários