Dúvida: Armazenagem e Soma de Entradas pelo Usuário

Queria otimizar um código enorme para gerar média… vou tentar resumir aki onde quero resumir…
Espero que entendam…

Quero fazer um código para tirar a média de N pessoas com N notas, porém o máximo que consegui foi:

double Nota1Double; do try { String Nota1; Nota1Double = Double.parseDouble(Nota1 = JOptionPane.showInputDialog(null, "Entre com a 1ª nota ")); //aqui eu queria colocar um contador para N notas if(Nota1 == null) //também queria atribuir uma variável que vai somando cada nota inserida System.exit(0); break; } catch(NumberFormatException e) { JOptionPane.showMessageDialog(null, "Digite um número válido", "Erro!", 2); } while(true); double Nota2Double; do try { String Nota2; Nota2Double = Double.parseDouble(Nota2 = JOptionPane.showInputDialog(null, "Entre com a 2ª nota ")); if(Nota2 == null) System.exit(0); break; } catch(NumberFormatException e) { JOptionPane.showMessageDialog(null, "Digite um número válido", "Erro!", 2); }

e no final saber como faço para multiplicar os resultados, bem como aplicar na fórmula da soma das matérias dividida pelo contador:

//Contador String Cont1; Int ContadorNome1 = Integer.parseInt(Cont1 = JOptionPane.showInputDialog(null, "Insira a quantidade de notas de"+Nome1); for (int i=1; ContadorNome1>=i;i++){ Nota1 = Double.parseDouble(NRa1 = JOptionPane.showInputDialog(null, "Entre com a"+i+"ª nota ")); // Daqui para baixo queria armazenar cada nota digitada e saber como somá-las bem como multiplicá-las }

Desde já agradeço!

Pq vc não usa uma lista de objetos Double, vc armazena os números nessa lista percorre ela e depois dá a média.

Olhando mais atentamente o seu código eu estou vendo erro nele.
Vc declara uma variável String chamada Nota1 (Primeiro erro, variável tem que começar com letra minúscula).
Mas isso é o de menos.

Mais abaixo vc fez assim:

    if(Nota1 == null){
          ....
    }//Ou seja vc tah pegando uma variável String e vendo se há alguma referência a ela na memória, ou seja, se foi instanciada ou não.

Bom, pelo que pude perceber eh que vc quer testar se há algum valor naquela variável correto?

O modo mais correto de fazer isso é utilizar um método chamado equals.

O código fica assim:

    if(Nota1.equals("")
       System.exit(0);//Aqui estou testando a possibilidade da variável Nota1 não tiver nenhum valor, se ela não tive nenhum valor então sai do sistema.
    
   break;
    

vlw pela dica do cmd equals :slight_smile:

e como faço essa lista?

Estou dizendo pra vc usar uma lista de objetos double, pois tudo em Java é objeto.

Vc faz assim:

  private  List<Double> notasLista = new ArrayList<Double>();
    //Ao invés de vc usar várias variáveis vc so usa uma.

   public void armazenarNotas(notas:double){
         notasLista.add(notas);//Aqui estamos carregando uma lista de objetos Double
   }

Bom, o resto vc modifica.

Qualquer coisa tu posta uma mensagem aqui.

E outra coisa vc pode colocar isso lá no seu código do jeito que vc codificou. Eu prefiro seguir as especificações da programação orientada a objetos. Se vc não entendeu ou tiver dúvidas poste aqui, que eu vou tentar resolver.

Vlw, resolvido :slight_smile: