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.
publicclassexercicio_16_3{publicstaticvoidmain(String[]args){intnum1=24;intnum2=27;intnum3=26;intresultado=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);}}
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.
publicclassexercicio_16_3{publicstaticvoidmain(String[]args){intnum1=24;intnum2=27;intnum3=26;intresultado=0;intresultado1=0;intmaior=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
Sandro_Machado1 like
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.
@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
igomes
Sim sim, boas práticas 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
Sandro_Machado1 like
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
Sandro_Machado1 like
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
mguedesmelo
intnum1=24;intnum2=27;intnum3=26;intresultado=0;resultado=(num1>num2)?(num1>num3?num1:num3):(num2>num3?num2:num3);System.out.println("O maior número é "+resultado);