importjavax.swing.*;publicclassLayout{publicstaticvoidmain(String[]args){Stringresultado="";Stringnumero=JOptionPane.showInputDialog("Digite um número");Stringnumero2=JOptionPane.showInputDialog("Digite um número");Stringnumero3=JOptionPane.showInputDialog("Digite um número");intnumeroInt=Integer.parseInt(numero);intnumeroInt2=Integer.parseInt(numero2);intnumeroInt3=Integer.parseInt(numero3);if(numeroInt>0){resultado=resultado+numeroInt+"\n";}if(numeroInt2>0){resultado=resultado+numeroInt2+"\n";}if(numeroInt3>0){resultado=resultado+numeroInt3+"\n";}JOptionPane.showMessageDialog(null,resultado,"Teste",JOptionPane.PLAIN_MESSAGE);System.exit(0);}}
Uma coisa que eu não estou entendendo, tenho a variável resultado, peço para digitar 3 valores, se no caso for digitado valores maiores que 0, então as condições serão verdadeiras. Mas eu armazenei os três resultados em somente uma variável “resultado” só que mesmo assim ele armazena os três valores e imprimi na tela. O que penso é o seguinte se tenho somente uma variável como ela armazena três valores? Pra mim o que iria acontecer era mostrar somente o ultimo, pois ela iria substituindo os valores conforme as condições pois como ela armazena três valores destintos só nela?
ela esta armazenando por causa disto “resultado = resultado + etc…” que poderia ser substituido por “resultado += etc…” para economia de codigo.
Se caso vc tivesse apenas “resultado = etc…” ai sim ela mostraria apenas o ultimo resultado.
b11
Como a sua variavel resultado é uma string, a cada if q vc colocou, tem-se resultado = resultado + numero…
ou seja, voce esta concatenando os numeros na vartiavel resultado. Se voce quer que apareça somente o ultimo numero, deveria fazer resultado = numero…
_Renatu
Primeiro, uma dica:
Evite perguntas com assunto “dúvida” ou “preciso de ajuda” e afins. Se você tentar ser mais claro no título, as pessoas sentem mais vontade de ajudar.
Agora vamos a sua pergunta
O seu atributo resultado está concatenando os valores digitados no JOptionPane nas operacoes
resultado=resultado+numeroInt+"\n"
Para substituir o valor, você pode usar assim:
resultado=String.valueOf(numeroInt)+"\n");
No seu caso, o atributo não está armazenando 3 valores int, e sim uma String grande com estes algarismos.
paulofernandesjr
retire o \n
do final das “contas”
dessa forma ele está concatenando as variavesis mesmo que antes você tenha definido como parseInt
cara, sua váriavel resulta é uma String.
quando vc faz:
resultado=resultado+numeroIntx+"\n";
vc esta concatenando a variavel numeroIntx a String resultado, ou seja, vc esta crirando uma String maior.
Se vc quiser somar os tres valores que vc entrou, então vc deve fazer com que resultado seja um int, ir somando todos e somente depois imprimila na tela ou simplesmente fazer assim:
Agora saquei, não tinha analisado o resultado = resultado+…
vlw abçs.
paulofernandesjr
bom saber dessas coisas!!!
heh
abraço
Mr_Smith
Pessoal !! Boa noite é sobre algoritmo Kruskal, é que estou fazendo um trabalho de um mapa de uma região e precisaria saber, como posso andar por todos as cidades(vértices), sem fechar ciclo, ai preciso pegar as menores arestas.
Valew!