Dúvida de um iniciante em JAVA ! [Resolvido]

10 respostas
java
B

Gente estou resolvendo exercícios e me apareceu a seguinte situação: Dados três números, crie um programa que exiba na tela o maior dentre os números informados. Use o operador ?: (dica: será necessário utilizar dois operadores ?: para se chegar ao resultado).

Mais tem um porem, a dica que foi dada é de se usar só 2 operadores ternários ( ? : ). E mesmo se eu utilizando 3 como esta no programa a baixo não sai o valor correto.

public class exercicio_16_3
{
	public static void main(String[] args) 
	{
		int num1 = 24;
		int num2 = 27;
		int num3 = 26;
		int resultado = 0;
		
		resultado = (num1 > num2) | (num2 > num1) ? num1:resultado;
		resultado = (num2 > num1) | (num2 > num3) ? num2:resultado;
		resultado = (num3 > num1) | (num3 > num2) ? num3:resultado;
		
		System.out.println("número 1 com o valor " + num1);
		System.out.println("número 2 com o valor " + num2);
		System.out.println("número 3 com o valor " + num3);
		System.out.println("O maior número é " + resultado);
	}
}

10 Respostas

B

Depois de mais de 3 horas tentado e sem desistir resolvi o problema de não esta imprimindo o correto, no caso o valor maior que seria o 27, mais mesmo assim ainda utilizando 3 operadores ternários. Se alguém conseguir fazer com 2 operadores vou ficar aguardado !!

OBS: tiver que refazer o exercício por que do outro modo estava completamente errado e sem nexo.

public class exercicio_16_3
{
	public static void main(String[] args) 
	{
		int num1 = 24;
		int num2 = 27;
		int num3 = 26;
		int resultado = 0;
		int resultado1 = 0;
		int maior = 0;
		
		resultado = (num1 > num2) ? num1:num2;
		resultado1 = (num1 > num3) ? num1:num3;
		maior = (resultado > resultado1) ? resultado:resultado1;
		
		System.out.println("número 1 com o valor " + num1);
		System.out.println("número 2 com o valor " + num2);
		System.out.println("número 3 com o valor " + num3);
		System.out.println("O maior número é " + maior);
	}
}
S

você já comparou num1 e num2, e a variável resultado já é o maior entre os dois,

então é só comparar resultado > num3, e o resultado será o maior.

resultado = (num1 > num2) ? num1:num2;
maior = (resultado > num3) ? resultado:num3;
B

@Sandro_Machado é isso :wink:, Obrigado !

I

E nunca _ em nome de classe viu @Bruno_Gomes1

B

@igomes o por que de não colocar o _ em classes ? É alguma regra da linguagem? Aparentemente os programas estão rodado ok, dos que criei até agora com os estudos e exercicios.

I

Sim sim, boas práticas :slight_smile: E classes sempre começam com letra maiúscula, só vc olhar nas classes que está usando do java, String, System e etc.
Aliás isso é uma das primeiras coisas que se aprende

S

As boas práticas nem sempre impactam diretamente a ponto de não compilar ou não executar seu programa, mas são praticas recomendadas para que se tenha um código “inteligível”, pois em um grupo de trabalho não será só você que irá ler e ter de interpretar seu código, e quanto mais desregrado e despadronizado, mais difícil fica sua compreensão, então é extremamente aconselhável seguir as boas praticas na programação, além de formar um excelente profissional juntamente com outras skill’s.

S

Não se esqueça de marcar a resposta que solucionou a sua dúvida bem como colocar no nome do título a expressão [Resolvido] .

Também é considerado uma boa pratica de utilização deste fórum.

M
int num1 = 24;
	int num2 = 27;
	int num3 = 26;
	int resultado = 0;
	
	resultado = (num1 > num2) ? (num1 > num3 ? num1 : num3) : (num2 > num3 ? num2 : num3);
	System.out.println("O maior número é " + resultado);
R

Que tal:

resultado = Math.max(Math.max(num1, num2),num3)

Criado 20 de março de 2016
Ultima resposta 22 de mar. de 2016
Respostas 10
Participantes 5