Vetor - resolução

Boa noite,

Estou com uma duvida imensa na repetição
Segue o meu programa se alguém puder me ajudar eu agradeço :

import javax.swing.JOptionPane;

public class Vetor1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		double loterias[] = new double[3];
		double soma = 0; 
		String msg = "";
		int i;

Eu notei alguns erros. Por exemplo no segundo for vc coloca “i <= 3”, sendo que deveria ser “i < 3” igual no primeiro for.

No terceiro for vc usou “i < 38” sendo que o array só tem 3 elementos!

Outra coisa é que vc declara a variável i fora do for e isso pode gerar confusão. O ideal é declarar variaveis com o menor escopo possivel. Então:

// ao invés de fazer isso:
int i = 0;
for (i = 0; i < 3; i++)
// faça isso:
for (int i = 0; i < 3; i++)

E acredito que seja desnecessário, no seu caso, ter tantos fors aninhados.

Bom, eu fiz um exemplo de como eu acho que seria certo, olha só:

import javax.swing.JOptionPane;

public class Main {
  public static void main(String... args) {
    double loterias[] = new double[3];
    double soma = 0;
    StringBuilder msg = new StringBuilder("Numeros escolhidos\n");

    for (int i = 0; i < 3; i++) {
      loterias[i] = Double.parseDouble(JOptionPane.showInputDialog("Digite o " + (i + 1) + "° numero entre 0 e 38"));

      msg.append(String.format("- %d° numero escolhido: %f\n", i + 1, loterias[i]));

      if (loterias[i] % 4 == 0) {
        soma += loterias[i];
      }
    }

    msg.append("\nSoma Numeros Divisiveis por 4: " + soma);

    JOptionPane.showMessageDialog(null, msg);
  }
}
2 curtidas

Olá, obrigada!

Realmente estou fazendo muita confusão com o for aninhado,e quando eu tenho que comparar, bagunço tudo, depois dessa explicação vou me atentar mais, e fazer mais exercícios.
Valeu mesmo

1 curtida

Uma curiosidade… por que você tem usado “double” onde “int” atende, de forma mais simples e ocupando menos memória?