2
respostas

[Dúvida] Código com o loop for

Fiz o código usando o for normal... nãoentendi muito bem como usar o for each... precisava de mais exemplos Porque no for each eu preciso criar uma variável nova?

public class SomaReceitaTotal {
    public static void main(String[] args) {
        int[] valores = {10, 20, 30, 40, 50};
        int soma = 0;
        for (int i = 0; i < valores.length; i++) {
            soma += valores[i];
        }
        System.out.printf("A soma é de: %d", soma);
    }
}
2 respostas

O laço foreach vai percorrer cada item da coleção atribuindo ele á variavel declarada. exemplo:

for (int valor : valores) {
    soma += valor;
}

neste caso, na primeira iteração, a propriedade "valor" recebera o primeiro valor da lista, isso é, 10. Na segunda, tera o valor do segundo item da lista, 20, e assim por diante até percorrer todos os valores da lista.

podemos entender o foreach como um "para cada item da lista, faça isso". então abaixo, o exemplo seria "para cada numero do meu array Valores, some o valor do item atual na variavel "soma""

public class SomaValores {
    public static void main(String[] args) {
        // Um array de inteiros
        int[] valores = {10, 20, 30, 40, 50};

        int soma = 0;

        // for-each: percorre cada elemento do array sem usar índice
        for (int valor : valores) {
            // Em cada iteração, 'valor' representa o elemento atual do array
            soma += valor; // Adiciona o valor atual à variável soma
        }

        // Exibe o resultado final da soma
        System.out.println("A soma dos valores é: " + soma);
    }
}

Oii, Yasmin!

Ótima pergunta, entender a diferença entre o for tradicional e o for-each ajuda muito a escrever códigos mais limpos e fáceis de entender. Vamos por partes:

O que você já fez: for tradicional

Seu código tá certinho! No for tradicional, você usa um índice (i) para acessar os elementos do array:

for (int i = 0; i < valores.length; i++) {
    soma += valores[i];
}
E o for-each, como funciona?

O for-each (também chamado de enhanced for) é uma forma mais simples e direta de percorrer todos os elementos de uma coleção (como arrays ou listas), sem precisar usar o índice.

A sintaxe é:

for (tipoDaVariavel nomeDaVariavel : arrayOuLista) {
    // usa nomeDaVariavel diretamente
}

No seu exemplo, usando for-each:

public class SomaReceitaTotal {
    public static void main(String[] args) {
        int[] valores = {10, 20, 30, 40, 50};
        int soma = 0;
        for (int valor : valores) {
            soma += valor;
        }
        System.out.printf("A soma é de: %d", soma);
    }
}
  • Por que criar uma variável nova (valor)?

Essa variável (valor) representa cada elemento do array enquanto o loop percorre os dados. Ela não é uma cópia do array nem cria algo extra, é só uma forma prática de acessar cada item, um por um.

Você não precisa se preocupar com índices, o que é ótimo quando você só quer ler os valores.

Quando usar for-each?

Use for-each quando:

  • Você quer ler todos os elementos de um array ou lista.
  • Não precisa do índice dos elementos.

Use for tradicional quando:

  • Precisa do índice (i) para lógica extra (por exemplo, acessar outro array na mesma posição ou pular elementos).

Espero ter ajudado.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!