Duvida simples retornar maior valor!

7 respostas
Maicon_Henrrique

Preciso que uma classe leia quatro valores, e apresente o maior, o modo que eu fiz, o codigo ficou extenso
Creio que tenho um modo mais facil de fazer isso, sou iniciante desculpe pela estudipez se for o caso

O codigo :

import java.util.Scanner;

public class Exercicio4 {

	public static void main(String[] args) {
	Scanner read = new Scanner(System.in);
	float n1,n2,n3,n4,menor;
	System.out.println("Digite o primeiro valor: ");
	n1 = read.nextFloat();
	System.out.println("Digite o segundo valor: ");
	n2 = read.nextFloat();
	System.out.println("Digite o terceiro valor: ");
	n3 = read.nextFloat();
	System.out.println("Digite o quarto valor: ");
	n4 = read.nextFloat();
	if (n1 > n2){
		if (n1 > n3){
			if (n1 > n4){
				System.out.println("O numero 1 é o maior!");
			}
		}
	}
	if (n2 > n1){
		if (n2 > n3){
			if (n2 > n4){
				System.out.println("O numero 2 é o maior!");
			}
		}
	}
	if (n3 > n2){
		if (n3 > n1){
			if (n3 > n4){
				System.out.println("O numero 3 é o maior!");
			}
		}
	}
	if (n4 > n2){
		if (n4 > n3){
			if (n4 > n1){
				System.out.println("O numero 4 é o maior!");
			}
		}
	}
	System.out.println ();
	System.out.println ("Final da execução!");
	
	}

}

7 Respostas

A

Tem vários tópicos sobre isto no fórum.

Procure por maior valor.

ViniGodoy

Olá. Se o assunto é urgente ou não, o problema é seu, não do fórum. Por favor, não peça urgência, socorro, ou poste títulos com letras maiúsculas, pois isso dá a entender que você quer ter mais prioridade que outros usuários do fórum.

Quanto ao seu problema, pense se não ficaria mais fácil:
a) Guardar o maior valor encontrado numa outra variável;
b) Atualizar esse valor a medida que for lendo dados.

G

Pelo que eu fiz esses dias, estudando… seria mais ou menos assim:

/*Tem quatro valores.. agente escolhe um qualquer*/
maxValue = n1;

/*Agora agente faz a seguinte verificação*/
if (n2 > maxValue)
maxValue = n2;

if(n3 > maxValue)
maxValue = n3;

if(n4 > maxValue)
maxValue = n4;

System.out.printf("O maior valor foi: " + maxValue);
ViniGodoy

O gabx deu a resposta.

Mais uma dica, não necessariamente desse problema:
Observe que um if assim:

if (n3 > n2){ if (n3 > n1){ if (n3 > n4){ } } }

Pode ser transformado num if assim:

if (n3 > n2 && n3 > n1 && n3 > n4) { }

Só pelo fato de eliminar tanta indentação, já compensa.

ViniGodoy

Outra forma possível, usando a biblioteca Math:

float maxValue = Math.max(Math.max(n1, n2), Math.max(n3, n4)); System.out.printf("O maior valor foi: " + maxValue);

Maicon_Henrrique

Muito obrigado pelas dicas, vou fazer bom proveito!
vou procura mais sobre a biblioteca Math porque nao intendi mt bem!

VLW!

ViniGodoy

O método Math.max retorna o maior valor entre dois números:

int x = Math.max(10, 20); //Retorna 20 int y = Math.max(20, 10); //Retorna 20

Criado 3 de julho de 2011
Ultima resposta 3 de jul. de 2011
Respostas 7
Participantes 4