Estrutura Condicional em Java
Estrutura Condicional em Java
Estrutura Condicional em Java
Exemplo 2: determinar o maior de dois nmeros dados. Suponha que o primeiro deles
o maior, armazenando-o em uma varivel MAIOR e depois, compare se os maior
procurado o segundo dos nmeros dados, neste caso o contedo da varivel MAIOR
deve ser alterado.
//importa para utilizar a classe Scanner
import java.util.*;
//o nome da nova classe
public class maior_de_dois {
//a funo principal
public static void main(String args[]){
//declara entrada como Scanner, para ler do teclado
Scanner entrada = new Scanner(System.in);
//declara as trs variveis
int a, b, maior;
//exibe uma mensagem solicitando a digitao dos nmeros
System.out.println("Digite dois nmeros inteiros: ");
//armazena os nmeros em a e b
a = entrada.nextInt();
http://erinaldosn.wordpress.com
2 Estrutura Condicional
b = entrada.nextInt();
//atribui a para maior
maior = a;
//verifica se b maior que a
if (b > a){
//se for, atribui b para maior
maior = b;
}
//exibe a mensagem com os dois valores digitados e o valor
de maior
System.out.printf("O maior dos nmeros %d e %d %d",
a,b,maior);
}
}
Linguagem de Programao 3
//escreve os valores ordenados de X e Y
g.drawString("Nmeros ordenados: X "+X
+" Y "+Y, 20, 30);
}
}
Exemplo 2: calcule a rea de um tringulo, dados os comprimentos dos seus lados. Para
os nmeros serem comprimentos dos lados de um tringulo, cada um deles precisa ser
menor que a soma dos outros dois.
//para usar a classe JOptionPane
import javax.swing.*;
//para formatar nmeros reais
import java.text.DecimalFormat;
//classe principal
public class area_triangulo {
//funo principal
public static void main(String args[]){
//num_real recebe o formato de nmero decimal
DecimalFormat num_real = new DecimalFormat ("0.000");
//declarao das variveis
float x, y, z, area, semiper;
//atribuio dos valores para x, y e z
http://erinaldosn.wordpress.com
4 Estrutura Condicional
x = Float.parseFloat(JOptionPane.showInputDialog(
"Digite o primeiro lado: "));
y = Float.parseFloat(JOptionPane.showInputDialog(
"Digite o segundo lado: "));
z = Float.parseFloat(JOptionPane.showInputDialog(
"Digite o terceiro lado: "));
//verifica se cada lado menor que a soma dos outros dois
if ((x < y+z) && (y < x+z) && (z < x+y)){//se for
//acha o semipermetro
semiper = (x + y + z)/2;
//calcula a rea
area = (float)Math.sqrt(semiper*
(semiper-x)*(semiper-y)*(semiper-z));
//exibe a rea no formato de num_real
JOptionPane.showMessageDialog(null,
"A rea do tringulo :
"+num_real.format(area));
}
else{//caso a verificao seja falsa
//exibe a mensagem informando que no um tringulo
JOptionPane.showMessageDialog(null,
"Os valores no podem ser comprimentos
dos lados de um tringulo");
}
}
}
Operador condicional
O Java fornece o operador condicional ?:, que pode ser utilizado no lugar de
uma instruo if... else. Esse o nico operador ternrio1 do Java. Juntos, os
operandos e o smbolo ?: formam uma expresso condicional.
O primeiro operando ( esquerda do ?) uma expresso booleana2, o segundo
operando (entre o ? e :) o valor da expresso condicional se a expresso booleana for
true, e o terceiro operando ( direita do :) o valor da expresso condicional se a
expresso booleana for avaliada como false.
Exemplo: imprimir Aprovado se a mdia do aluno for maior ou igual a 60, mas
imprimir Reprovado se for menor que 60.
import java.util.Scanner;
public class mediaaluno {
public static void main(String args[]){
Scanner entrada = new Scanner(System.in);
float media;
System.out.print("Digite a mdia do aluno: ");
media = entrada.nextFloat();
System.out.println(media>=60 ? "Aprovado" : "Reprovado");
}
}
1
2
Linguagem de Programao 5
Exemplo 1: receba trs valores fornecidos pelo usurio que representaro os lados de
um tringulo. Verifique se os valores formam um tringulo e classifique esse tringulo
como:
a) Equiltero: trs lados iguais.
b) Issceles: dois lados iguais.
c) Escaleno: trs lados diferentes.
Lembre-se de que, para formar um tringulo, nenhum dos lados pode ser igual a
zero, um lado no pode ser maior do que a soma dos outros dois.
import javax.swing.*;
public class triangulo {
public static void main (String args[]){
//declara as variveis A, B e C
int A, B, C;
//inicializa as variveis
A = Integer.parseInt(JOptionPane.showInputDialog("Lado
A"));
B = Integer.parseInt(JOptionPane.showInputDialog("Lado
B"));
C = Integer.parseInt(JOptionPane.showInputDialog("Lado
C"));
//verifica se os lados no so iguais a zero
if (A != 0 && B != 0 && C != 0){
//verifica se um lado no maior que a soma dos
outros dois
if (A+B > C && A+C>B && B+C > A){
//verifica se todos os lados so diferentes
if (A != B && A != C && B != C){
JOptionPane.showMessageDialog(null,
"Escaleno");
}
//caso no sejam todos diferentes
else{
//verifica se todos os lados so iguais
if (A == B && B == C){
JOptionPane.showMessageDialog(null,
"Equiltero");
}
//caso no sejam todos iguais
else{
JOptionPane.showMessageDialog(null,
"Issceles");
}
}
}
//caso a soma de dois lados no seja maior que um dos
lados
else{
JOptionPane.showMessageDialog(null, "No forma
um tringulo");
}
}
//caso algum dos lados seja igual a zero
else{
JOptionPane.showMessageDialog(null, "No forma um
tringulo");
}
}
}
http://erinaldosn.wordpress.com
6 Estrutura Condicional
Exemplo 2: determine as razes de uma equao do segundo grau. Sabendo que uma
quao ax2 + bx + c = 0 s tem razes se b24ac
0. Alm disso, para que ela
seja do segundo grau, deve-se ter a
0.
//para ler do teclado
import java.util.Scanner;
//para formatar nmero decimal
import java.text.DecimalFormat;
//programa
public class eqgrau2 {
//principal
public static void main(String args[]){
//declara entrada para ler do teclado
Scanner entrada = new Scanner(System.in);
//declara num_real para nmeros decimais
DecimalFormat num_real = new DecimalFormat("0.0");
//declarao de variveis
float a, b, c, x1, x2, delta;
//recebe os valores da equao
System.out.println("Digite os valores de a, b e c: ");
//atribui os valores s variveis
a = entrada.nextFloat();
b = entrada.nextFloat();
c = entrada.nextFloat();
//verifica se o valor de a diferende de 0
if (a != 0){//se for diferente de 0
//calcula o valor de delta
delta = (float)Math.pow(b, 2)-4*a*c;
//verifica se delta maior ou igual a 0
if (delta >= 0){//se for
//calcula as razes
x1 = (-b+(float)Math.sqrt(delta))/2*a;
x2 = (-b-(float)Math.sqrt(delta))/2*a;
//exibe o valor das razes
System.out.println("Razes da equao: "+
num_real.format(x1)+" e "+
num_real.format(x2));
}
//se delta no for maior ou igual a 0
else{
//exibe a mensagem
System.out.println("A equao dada no tem
razes reais");
}
}
//se a for igual a 0
else{
//exibe a mensagem
System.out.println("A equao no do segundo
grau");
}
}
}
Operadores lgicos
As instrues IF, IF... else, e outras, requerem uma condio para determinar
como continuar o fluxo de um programa de controle. O Java fornece operadores lgicos
para permitir que os programadores formem condies mais complexas combinando
condies simples.
http://erinaldosn.wordpress.com
Linguagem de Programao 7
Esses operadores funcionam de modo idntico aos operadores && e ||, com
uma exceo: os operadores lgicos booleanos sempre avaliam seus dois operandos.
OU exclusivo lgico booleano (^)
8 Estrutura Condicional
ao est associada com o valor de uma expresso integral constante (byte, short,
int ou char) que a varivel ou expresso em que a switch baseada pode assumir.
Exemplo: ler o cdigo de um produto e exibir seu nome de acordo com a tabela a
seguir:
Cdigo do produto Nome do produto
1
Caderno
2
Lpis
3
Borracha
Qualquer outro
Diversos
//para mostrar caixas de dilogo
import javax.swing.JOptionPane;
//programa
public class exibeproduto {
//principal
public static void main(String args[]){
//declarao de variveis
int codigo;
String texto;
//atribuio do valor do cdigo do produto
codigo = Integer.parseInt(JOptionPane.showInputDialog
("Digite o cdigo do produto"));
//verifica o valor do cdigo
switch (codigo){
//caso seja 1
case 1 :
//atribui a string varivel texto
texto = "O produto caderno";
//interrompe o fluxo
break;
//caso seja 2
case 2:
//atribui a string varivel texto
texto = "O produto lpis";
//interrompe o fluxo
break;
//caso seja 3
case 3:
//atribui a string varivel texto
texto = "O produto borracha";
//interrompe o fluxo
break;
//caso o cdigo no seja 1, 2 ou 3
default :
//atribui a string varivel texto
texto = "Diversos";
}
//exibe o contedo da varivel texto
JOptionPane.showMessageDialog(null, texto);
}
}
Instruo break
O Java fornece a instruo break para alterar o fluxo de controle. A instruo
break ocasiona sua sada imediata da instruo. A execuo continua com a primeira
instruo depois da instruo de controle.
http://erinaldosn.wordpress.com
Linguagem de Programao 9
Exerccios
1. Preencha as lacunas:
a) A instruo __________ utilizada para executar uma ao quando uma
condio for verdadeira e outra quando essa condio for falsa.
b) O Java requer que todas as variveis tenham um __________.
c) A instruo __________ seleciona entre mltiplas aes com base nos possveis
valores de uma varivel ou expresso integrais.
d) O operador __________ pode ser utilizado para assegurar que duas condies
so verdadeiras antes de escolher certo caminho de execuo.
2. Determine se cada uma das seguintes afirmaes verdadeira ou falsa. Se falso,
explique por que.
a) Um algoritmo um procedimento para resolver um problema em termos das
aes a serem executadas e a ordem em que essas aes so executas.
b) Um conjunto de instrues dentro de um par de parnteses chamado bloco.
c) Uma instruo de seleo especifica que uma ao deve ser repetida enquanto
algumas condies permanecem verdadeiras.
d) O pseudocdigo ajuda um programador a pensar sobre um programa antes de
tentar escrev-lo em uma linguagem de programao.
e) O caso default requerido na instruo de seleo switch.
f) A instruo break necessria no ltimo caso de uma instruo de seleo
switch.
g) A expresso ((x>y)&&(a<b)) verdadeira se x>y for verdadeira ou a<b for
verdadeira.
h) Uma expresso contendo o operador || verdadeira se um ou ambos de seus
operandos forem verdadeiros.
i) Para testar uma srie de valores em uma instruo switch, utilize um hfen ()
entre os valores inicial e final da srie em um rtulo case.
3. Escreva instrues Java para realizar cada uma das seguintes tarefas:
a) Teste se a varivel contador maior do que 10. Se for, imprima
Contador maior que 10.
b) Calcule o resto aps q ser dividido por divisor e atribua o resultado a q.
c) Calcule o valor de 2.5 elevado potncia de 3, utilizando o mtodo pow.
4. Escreva uma instuo Java para realizar cada uma das seguintes tarefas:
a) Declare as variveis soma e x que sero do tipo inteiro.
b) Atribua 1 varivel x.
c) Atribua 0 varivel soma.
d) Adicione a varivel x varivel soma e atribua o resultado varivel soma.
e) Imprima A soma : seguido pelo valor da varivel soma.
Bibliografia
Java: como programar
H. M. Deitel, P. J. Deitel
So Paulo: Pearson Prentice Hall, 2005
Estrutura de dados e algoritmos em Java
Michael Goodrich, Roberto Tamassia
Porto Alegre: Bookman, 2007
Lgica de programao e estrutua de dados, com aplicaes em Java
Sandra Puga, Gerson Rissetti
http://erinaldosn.wordpress.com
10 Estrutura Condicional
http://erinaldosn.wordpress.com