Olá pessoa.
eu estava tentando aplicar uns códigos no java e percebi que cada vez que seto um valor e fico substituindo para ver o maior o java vai lá e substitui :shock:
Eitcha! Não entendi seu problema , mas o código está correto… O Java está substituindo o valor de suas variaveis quando você faz uma comparação entre elas???
Poderia explicar melhor?
C
caina27
exatamente, ao invés de comparar e diz quem é maior ele substitui os valores :? eu tava achando que era na condição “&& a!=b” que eu inventei no if, mas to pesquisando agora e nem sei se tá tão errado assim, por isso perguntei aqui
sabe como fazer ele não adicionar o mesmo valor sempre?
:?
obrigado pela atenção
peczenyj
b < a && b!=a é redundante.
Acho que vc esta tentando ordenar alguns valores. seria interessante vc postar o codigo inteiro.
victor.godinho
Ixi, então ferrou-se, eu tinha entendido… hahaha.
Kara… eu não faço a mínima idéia do porque o Java iria substituir os valores fazendo uma comparação… Tem certeza mesmo?? Aqui na minha máquina o seu código está funcionando normal… (claro, fazendo algumas adaptções para ter as variavéis ‘a’, ‘b’ e ‘valores’).
Dá uma debugada ai que talvez o problema possa ser outro…
Desculpa, mas não sei muito bem como posso ajudar…
C
caina27
//pedir tres valores e somar os dois maiorespublicclasslogic{privatelonga=0,b=0,c=0;privateint[]valores=newint[3];publicvoidum(){for(inti=0;i<valores.length;i++){Stringa=JOptionPane.showInputDialog("digite valores");valores[i]=newInteger(a);}}publicvoiddois(){for(inti=0;i<valores.length;i++){if(valores[i]>a){a=valores[i];}if(b<a&&b!=a){b=a;}elseif(c<b&&c!=b){c=b;}}}publicvoidtre(){System.out.println(a+"/"+b+"/"+c);}}
é esse ae :)
C
caina27
pois é eu debuguei e quando ele entra no if, vai substituindo todos pelo mesmo valor que entrem na clausola do if
ou seja ele não faz a comparação entre eles =x
nascinho
Com base no que foi discutido, corrigi teu código:
//pedir tres valores e somar os dois maiores publicclasslogic{privatelonga=0,b=0,c=0;privateint[]valores=newint[3];publicvoidum(){for(inti=0;i<valores.length;i++){Stringa=JOptionPane.showInputDialog("digite valores");valores[i]=newInteger(a);}}publicvoiddois(){for(inti=0;i<valores.length;i++){if(valores[i]>a){a=valores[i];}if(b<a){b=a;}elseif(c<b){c=b;}}}publicvoidtre(){System.out.println(a+"/"+b+"/"+c);}}
Uma coisa que eu percebi foi a seguinte: vc faz um if deste modo:
if(b<a&&b!=a)
Como nele há uma comparação entre duas "variáveis", vc deve agrupá-las, tipo assim:
if((b<a)&&(b!=a))
Espero ter ajudado
M
marcobiscaro2112
Ambos os código tem o mesmo efeito. O problema citado com esse trecho não são os parênteses, e sim a lógica, uma vez que se um número é maior que outro, obrigatoriamente esses são diferentes (não é necessário fazer duas comparações).