Exercício da faculdade, não estou conseguindo!

E ai pessoal, sou novo aqui no PJ e sou novo em programação também, estou aprendendo Java na faculdade (segunda fase)
o problema é o seguinte:

  1. Construir um algoritmo que calcule a média aritmética de vários valores inteiros positivos, lidos externamente. O final da leitura acontecerá quando for lido um valor negativo

ai vai o código que eu fiz:

[code] import javax.swing.JOptionPane;

public class MediaAritimetica {

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub
	int valor = 0, quantidade = -1, soma = 0;
	
	
	while (valor >= 0) {
		valor = Integer.parseInt(JOptionPane.showInputDialog("Informe um valor inteiro." +"\n" + "Para terminar, informe um valor negativo."));
		soma = soma + valor;
		quantidade = quantidade + 1;
	}
	
	JOptionPane.showMessageDialog(null, "Você digitou "+quantidade+" números"+"\n"+"A média é: "+(soma/quantidade));
}

}
[/code]

o programa compilou tudo certinho, consigo executar, o problema é que o programa não tá mostrando o que eu quero!

ele não tá calculando a média corretamente, olhei o código todo, com ajuda de uns amigos e também não conseguimos…

eu usei o while porque quando eu digitar um número negativo, ele deve encerrar o programa, dai achei que ele seria a melhor opção…

por enquanto é isso… valeu!

O problema é que ele ta somando o numero negativo tb… tente assim:

 public static void main(String[] args) {
       int valor = 0, quantidade = 0, soma = 0;
      
      
      while (valor >= 0) {
         valor = Integer.parseInt(JOptionPane.showInputDialog("Informe um valor inteiro." +"\n" + "Para terminar, informe um valor negativo."));
          if(valor>0){
         soma = soma + valor;
         quantidade = quantidade + 1;
         }
      }
      
      JOptionPane.showMessageDialog(null, "Você digitou "+quantidade+" números"+"\n"+"A média é: "+(soma/quantidade));
   }

} 

nao testei aqui mas deve rresolver…

não,
eu inicializei a variavel Quantidade com um numero negativo para resolver outro probleminha, ele estava contando 1 a mais, por exemplo
vc inseria 2 números, ele dizia que vc inseriu 3 entende?
dai do jeito que fiz ele mostra a quantidade de números inseridos corretamente.
mas mesmo assim dava problema na conta…

pois e… mas com esse if que coloquei ai resolve o problema… ele tava dandio um numero a mais pq ele tb somava e contava o numero negativo que vc digitava para parar o looping. agora isso nao mais acontece pq fiz isso

if(valor>0){
soma = soma + valor;
quantidade = quantidade + 1;
}

testa ai que vai funcionar…

puts, foi mal, não reparei no If ali.
agora não dá tempo pra mim testar, quando chegar da aula eu testo e respondo aqui blz?

valeu! :grin:

problema resolvido :grin:

era isso mesmo, só colocar o if ali e resolveu tudo!

valeu pela ajuda!