Ajuda Soma em java com varios numeros.
num1 = Double.parseDouble(JOptionPane.showInputDialog(null,
"Digite o primeiro numero")); // entrada de dos numero
num2 = Double.parseDouble(JOptionPane.showInputDialog(null,
"Digite o segundo numero")); // entrada de dos numero
JOptionPane.showMessageDialog(null, " O resultado e "
+ (num1 + num2)); //saida ja com a soma.
Mas se o usuario queser fazer uma soma de 5, 8, 15, 30, 50, 100, numero ai como faço ai tou obrigando ela a fazer apena soma com 2 numero.
Vei um programa que perguntava quantos numero ele queria somar, ai aparecia a quantidades de janela de entrada para o usuario
Rudson Porfirio
Curtidas 0
Respostas
Joao Silva
30/04/2012
usa um comando de repetição (while)
import javax.swing.JOptionPane; public class buton { public static void main(String args[]){ double end = -1; double soma =0; while(end!=0){ double num = Double.parseDouble(JOptionPane.showInputDialog(null, "insira um valor ou digite 0 para finalizar a soma")); // entrada de dos numero end = num; soma = soma+num; } JOptionPane.showMessageDialog(null, " O resultado e " + soma); //saida ja com a soma. }}
GOSTEI 0
Rudson Porfirio
30/04/2012
Queria saber de outro jeito.
Tipo ia aparece uma janela que perguntasse quantos numeros ele queria somoar.
se ele digita 5 ia aparecer 5 janelas para ele digita so pra aprender mesmo.
Tipos um programa que cadastre pessoas se tiver 500 pessoas não vou coloca 500 variavel na mão né.
Se poder ajudar nessa aki obrigado.
A outra ajudo bastante tbm sou tou tentando entender como vc fez.
VLW
GOSTEI 0
Murillo Beltrame
30/04/2012
public class SomasNumeros { public static void main(String[] args) { int i = 0, valor = 0; double soma = 0; while(i == 0){ valor++; double aux = Double.parseDouble(JOptionPane.showInputDialog(null, "Digite o valor "+valor)); soma = soma + aux; i = JOptionPane.showConfirmDialog(null, "Deseja continuar somando?"); if(i == 1){ JOptionPane.showMessageDialog(null, "O resultado é "+soma); } } } }
GOSTEI 0
Murillo Beltrame
30/04/2012
Ou então como você queria , é desse jeito
public class SomasNumeros { public static void main(String[] args) { int i = 0, valor = Integer.parseInt(JOptionPane.showInputDialog(null, "Quantos valores deseja informar?")); double soma = 0; while(i != valor){ i++; double aux = Double.parseDouble(JOptionPane.showInputDialog(null, "Digite o valor "+i)); soma = soma + aux; if(i == valor){ JOptionPane.showMessageDialog(null, "O resultado é "+soma); } } } }
GOSTEI 0
Rudson Porfirio
30/04/2012
Esse ultimo codigo e oq eu queria saber,
se puder explicar ele ficaria muito grato mas se não ja ajudo D+
GOSTEI 0
Murillo Beltrame
30/04/2012
public class SomasNumeros { public static void main(String[] args) { int i = 0, valor = Integer.parseInt(JOptionPane.showInputDialog(null, "Quantos valores deseja informar?")); // aqui nessa linha ele pergunta pro usuário quantos numeros ele deseja somar e armazena em uma variavel double soma = 0; //variavel que armazena a soma de todos os numeros while(i != valor){ //enquanto a variavel i for menor que a quantidade de vezes ele quer somar i++; //soma +1 na variavel i pra contar que ele ja somou mais uma vez double aux = Double.parseDouble(JOptionPane.showInputDialog(null, "Digite o valor "+i)); //armazena o valor digitado em uma variavel auxiliar soma = soma + aux; // soma vai ser igual a ela mesma mais o valor auxiliar if(i == valor){ //se for a ultima execução do while ele mostra o resultado JOptionPane.showMessageDialog(null, "O resultado é "+soma); //exibi o resultado } } } }
GOSTEI 0
Leonardo Silva
30/04/2012
Aqui está o programa completo, testando cada tipo resultado que o usuário pode digitar, se digitar uma letra, não dará um erro, irá pedir para o usuário digitar novamente, está bem completo!
import javax.swing.JOptionPane; public class Teste { // Método para não escrever novamente o catch. public static void erro(String aux){ if(aux.isEmpty()){ // Se o usuário não digitar, será um campo em branco; JOptionPane.showMessageDialog(null, "Campo em branco, digite novamente!", "Atenção!", JOptionPane.WARNING_MESSAGE); }else{// Por estar dentro de um catch, se não for um campo vazio, será um caractere inválido; JOptionPane.showMessageDialog(null, "Insira somente caracteres válidos!", "Atenção!", JOptionPane.WARNING_MESSAGE); } } public static void main(String[] args) { // Início das variáveis. String aux = null; // Variável auxiliar para testar erros; boolean t1; // Booleano para testar os erros; long qtde; // Quantidade de números digitados; double num, res; // num -> Número atual que o usuário digitou, res -> Resultado; int pergf; // Pergunta final, se o usuário quer fazer uma nova operação. // Final das variáveis. // Começo do loop, para que na última pergunta, o usuário decide se faz ou não uma nova operação; do{ // Iniciando as váriaveis qtde = 0; res = 0; // Até aqui /* Começo do loop para testar que o usuário deve digitar um número maior ou * igual a 2, para fazer a soma corretamente. */ do{ // t1 é um booleano, vai inializar com falso, pois ainda não foi testada ou ainda não está correto o número digitado; t1 = false; // Fazemos um while, pois se o t1 for mudado para true, ele para subitamente. while(!t1){ try{ aux = JOptionPane.showInputDialog(null, "Quantos números você deseja somar?", "Pergunta!", JOptionPane.QUESTION_MESSAGE); // Se aux for null, que é a mesma coisa que cancelar ou clicar no botão X, sai do programa. if(aux == null){ System.exit(0); } /* Usamos uma String, aux no caso, para testarmos se o usuário clicou em cancelar ou no botão X * Usamos agora a variável qtde e passamos para um Long, caso tenha algum erro, não executará * o t1 = true, então não irá sair do loop, e irá até o catch, que é a estrutura para tratamento * de erros, se não tiver nenhum erro, ele sai do loop. */ qtde = Long.parseLong(aux); t1 = true; }catch(NumberFormatException Erro){ // Chama o método erro, para testar os tipos de erro. erro(aux); } } // Mostra uma mensagem caso o usuário não tenha digitado um número maior ou igual a 2. if(qtde <= 1){ JOptionPane.showMessageDialog(null, "Insira uma quantidade de números superior a 2!", "Atenção!", JOptionPane.WARNING_MESSAGE); } }while(qtde <= 1); // Final do loop de teste, para o usuário digitar um número maior ou igual a 2. // Utiliza a variável qtde para definir quantos vezes vamos repetir a mensagem. for(long x = 1; x <= qtde; x++){ // Segue as mesmas mensagens citadas acima. t1 = false; while(!t1){ try{ aux = JOptionPane.showInputDialog(null, "Digite o " + x + "º de " + qtde + " números:", "Pergunta!", JOptionPane.QUESTION_MESSAGE); if(aux == null){ System.exit(0); } /* Usamos aux.replace, para trocar a (,) por (.), pois se o usuário digitar (,) irá ocorrer * um erro na alocação variável. */ num = Double.parseDouble(aux.replace(",", ".")); /* Utilizamos a variável res para receber o valor do resultado, * res += num é a mesma coisa que res = res + num. */ res += num; t1 = true; }catch(NumberFormatException Erro){ erro(aux); } } } // Imprime resultado. JOptionPane.showMessageDialog(null, "Resultado da soma: " + res); // pergf é a variável que vai receber a resposta se o usuário deseja somar novamente. pergf = JOptionPane.showConfirmDialog(null, "Deseja somar novamente?", "Selecione uma opção!", JOptionPane.YES_NO_OPTION); }while(pergf == JOptionPane.YES_OPTION); // Final do loop, se o usuário digitar em sim, ele fará tudo novamente, caso não seja sim, finalizará o programa. } }
GOSTEI 0