Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

[Dúvida] Colocando apenas o índice no console.writeline

Na verdade possuo duas dúvidas. A primeira é que reparei que quando eu uso o i direto no teste, assim:


for (int i = 0; i < Numeros.Count; i++)
{
    if (i % 2 == 0)
    {
        Console.WriteLine($"Número par: {i}");
    }
}

Tem algum motivo que justifique ser melhor usar Numero[i] exceto o fator de querer listar na ordem exata que está cadastrado na lista? Como maior chance de erros e coisas assim?

A segunda dúvida é que quando eu faço assim:

for (int i = 0; i < Numeros.Count; i++)
{
    if (i % 2 == 0)
    {
        Console.WriteLine($"Número par: {Numeros[i]}");
    }
} 

Ele vai ter como resultado apenas os números ímpares, só gostaria que alguém me ajudasse a entender o pq ele exclui os números pares. Fiz isso sem querer e não consegui entender bem a lógica por trás. Desde já, obrigada.

4 respostas
solução!

Resposta a primeira dúvida: Usar Numeros[i] em vez de i no seu código tem a vantagem de acessar diretamente o elemento da lista Numeros correspondente ao índice i. Essa abordagem é útil quando você precisa realizar operações ou obter valores específicos de cada elemento da lista, além de apenas imprimi-los.

No seu exemplo, você está verificando se cada índice i é par e, em seguida, imprimindo o valor correspondente usando i. No entanto, se você deseja imprimir o número em si, ou seja, o valor contido na lista Numeros no índice i, você precisa usar Numeros[i].

Usar Numeros[i] em vez de i oferece mais flexibilidade e precisão em termos de manipulação de dados. Isso permite que você realize operações matemáticas, aplique lógica condicional ou execute qualquer outra ação que seja necessária com base nos valores reais contidos na lista.

Por exemplo, se você precisar somar todos os números pares da lista, não seria possível fazer isso apenas com o índice i, mas seria possível usando Numeros[i]. Além disso, se você precisar realizar cálculos ou operações mais complexas com os números, usar Numeros[i] é a abordagem correta.

Vamos supor que você tenha uma lista chamada Numeros contendo os seguintes elementos: [10, 20, 30, 40, 50].

Se você quisesse imprimir todos os números pares da lista usando Numeros[i], o código seria assim:

List<int> Numeros = new List<int> { 10, 20, 30, 40, 50 };

for (int i = 0; i < Numeros.Count; i++)
{
    if (Numeros[i] % 2 == 0)
    {
        Console.WriteLine($"Número par: {Numeros[i]}");
    }
}

A saída seria:

Número par: 10
Número par: 20
Número par: 30
Número par: 40
Número par: 50

Nesse exemplo, em cada iteração do loop for, estamos acessando o elemento da lista Numeros no índice i usando Numeros[i]. Em seguida, verificamos se o número é par usando a condição Numeros[i] % 2 == 0. Se for par, imprimimos o número usando Numeros[i] no Console.WriteLine.

Usando Numeros[i], podemos realizar operações específicas em cada elemento da lista com base nos seus valores reais, neste caso, verificando se é par. Isso não seria possível se estivéssemos usando apenas o índice i.

Espero ter ajudado nessa primeira dúvida

Resposta segunda dúvida: No código que você forneceu:

for (int i = 0; i < Numeros.Count; i++)
{
    if (i % 2 == 0)
    {
        Console.WriteLine($"Número par: {Numero[i]}");
    }
}

A condição if (i % 2 == 0) verifica se o valor de i é divisível por 2, ou seja, se i é um número par. Se essa condição for verdadeira, o número é considerado par e será impresso usando Numero[i].

No entanto, o problema está no uso de Numero[i] em vez de Numeros[i]. Isso significa que você está tentando acessar os elementos da lista usando um nome de variável diferente, o que levará a um erro de compilação. Se você corrigir o código para usar Numeros[i], ele funcionará corretamente.

Aqui está o código corrigido:

for (int i = 0; i < Numeros.Count; i++)
{
    if (i % 2 == 0)
    {
        Console.WriteLine($"Número par: {Numeros[i]}");
    }
}

Com essa correção, o código imprimirá os números pares corretamente, pois está usando Numeros[i] para acessar os elementos da lista Numeros e, em seguida, verifica se eles são pares com base no índice i.

Espero ter ajudado!

Desculpa, no programa o nome da variável está correta, apenas aqui na pergunta coloquei errado, acabei de corrigir.

Então seu programa está correto! Ele vai imprimir números pares, a não ser que no lugar de if (i % 2 == 0) tenha if (i % 2 != 0), então teríamos como resultado números ímpares. Caso esteja correto, tenta sair e entrar novamente, então peça para executar o código novamente