Olá, sou novo por aqui. Estou estudando Lógica de Programação em Java, onde tive a minha lógica e gostaria que coletar uma orientação dos Javanos se estou no caminho certo, joga tudo fora e faça assim… FeedBack e Criticas serão bem vindas… O exercícios pede o seguinte:
“Escreva um algoritmo que recebe 5 números inteiros. Depois, mostra qual o menor valor e o
maior valor fornecido”
A minha lógica foi a seguinte - CREIO QUE POSSA MELHORAR, MAS FUNCIONOU …
import javax.swing.JOptionPane;
/**
*
-
@author elourenco
*/
public class ExercicioSete {
public static void main(String[]args){
int n1,n2,n3,n4,n5;
n1 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor 1: "));
n2 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor 2: "));
n3 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor 3: "));
n4 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor 4: "));
n5 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor 5: "));
if(n1 < n2 && n1 < n3 && n1 < n4 && n1 < n5){
JOptionPane.showMessageDialog(null, "O Valor menor é: "+n1);
}if(n2 < n1 && n2 < n3 && n2 < n4 && n2 < n5){
JOptionPane.showMessageDialog(null, "O Valor menor é: "+n2);
}if(n3 < n1 && n3 < n2 && n3 < n4 && n3 < n5){
JOptionPane.showMessageDialog(null, "O Valor menor é: "+n3);
}if(n4 < n1 && n4 < n2 && n4 < n3 && n4 < n5){
JOptionPane.showMessageDialog(null, "O valor menor é: "+n4);
}if(n5 < n1 && n5 < n2 && n5 < n3 && n5 < n4){
JOptionPane.showMessageDialog(null, "O valor menor é: "+n5);
}if(n1 > n2 && n1 > n3 && n1 > n4 && n1 > n5){
JOptionPane.showMessageDialog(null, "O Valor maior é: "+n1);
}if(n2 > n1 && n2 > n3 && n2 > n4 && n2 > n5){
JOptionPane.showMessageDialog(null, "O Valor maior é: "+n2);
}if(n3 > n1 && n3 > n2 && n3 > n4 && n3 > n5){
JOptionPane.showMessageDialog(null, "O Valor maior é: "+n3);
}if(n4 > n1 && n4 > n2 && n4 > n3 && n4 > n5){
JOptionPane.showMessageDialog(null, "O valor maior é: "+n4);
}if(n5 > n1 && n5 > n2 && n5 > n3 && n5 > n4){
JOptionPane.showMessageDialog(null, "O valor maior é: "+n5);
}
}
}
Obrigado…
Não era mais fácil se…
Você definisse apenas 3 variáveis, maior, menor e valor?
Você definisse maior como um número bem baixo e menor com um número bem alto?
Você comparasse cada valor lido com maior e menor e já fosse substituindo caso fosse maior que o maior ou menor que o menor?
Fala, Emerson.
Também comecei estudando lógica da programação com Java. Seu programa é eficaz, porém não é eficiente e isso é uma das questões que a gente sempre precisa estar olhando. Você criou várias condições no final. É claro que no seu código não vai fazer tanta diferença, mas no código de uma empresa ou de um software mais elaborado, pode fazer uma grande importância essa simplificação. Segue o meu código abaixo, para que você possa entender melhor.
int n1, n2, n3, n4, n5;
/*
Seguinte, eu estabeleci duas variáveis, uma para receber o maior valor e
outra para receber o menor. Assim, eu só preciso pegar os números que você foi
inserindo (n1, n2, n3, n4) e ir comparando com essa variável (que tenho como
base para saber qual o maior e o menor).
Logo, depois de ter recebido todos os valores (n1, n2, n3, n4) eu crio meus
if's para identificar qual o maior e menor valor.
Nota: você percebe que o primeiro valor que eu comparar sempre será o
maior/menor? Por isso estabeleço essas variáveis como sendo 0 e a
outra 999, para eu possa receber esse primeiro valor e depois compare
com as outras.
*/
int maior = 0, menor = 9999;
n1 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor 1: "));
n2 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor 2: "));
n3 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor 3: "));
n4 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor 4: "));
n5 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor 5: "));
if (n1 >= maior) {
maior = n1;
} else if (n2 >= maior) {
maior = n2;
} else if (n3 >= maior) {
maior = n3;
} else if (n3 >= maior) {
maior = n4;
}
if (n1 <= menor) {
menor = n1;
} else if (n2 <= menor) {
menor = n2;
} else if (n3 <= menor) {
menor = n3;
} else if (n3 <= menor) {
menor = n4;
}
JOptionPane.showMessageDialog(null, "O maior valor é: " + maior);
JOptionPane.showMessageDialog(null, "O menor valor é: " + menor);
Abraço, Emerson.
1 curtida
Olá AlanMSV. Obrigado pela dica…
Foi muito construtiva…
Obrigado.
1 curtida
Olá darlan,
Vou absorver sua lógica e elaborar outro exercício parecido para fortalecer.
Obrigado,
import java.util.Scanner;
public class Exercicio {
public static void main(String[] args) {
int numero, maior = -999999999, menor = 999999999;
Scanner sc = new Scanner(System.in);
for(int i = 0; i < 5; i++) {
System.out.println("Informe um número");
numero = Integer.parseInt(sc.nextLine());
if(numero > maior) {
maior = numero;
}
if(numero < menor) {
menor = numero;
}
}
sc.close();
System.out.println("O maior valor digitado foi: " + maior);
System.out.println("O menor valor digitado foi: " + menor);
}
}
1 curtida