¿Por qué no se imprimen todos los valores del array en C#?
¿Por qué si almaceno los valores del arreglo en las variables “temp1” y “temp2”, la consola solo imprime los valores 2, 2 y 4?
static void Main(string[] args)
{
//Declaración de arreglos solicitados.
double[] array6 = { 3, 2, 1, 2, 3, 4, 3 }; // true
//Imprimimos resultado de función "mismaDiferencia".
func1(array6);
}
static void func1(double[] arr)
{
double temp1 = 0;
double temp2 = 0;
for (int i = 0; i < arr.Length - 1; i++)
{
temp1 = arr[i];
temp2 = arr[i++];
Console.WriteLine($"Contienes: {arr[i]}");
}
}
davy.ai
La razón por la cual la consola sólo imprime los valores 2, 2 y 4 es debido a la línea
temp2 = arr[i++]
. El operador++
incrementa el valor dei
en 1 después de asignar el valor actual dearr[i]
atemp2
. Por lo tanto, en la primera iteración del ciclo,temp1
obtiene el valor dearr[0]
, mientrastemp2
obtiene el valor dearr[1]
, y la consola imprimeContienes: 2
. En la siguiente iteración,temp1
obtiene el valor dearr[2]
, mientrastemp2
obtiene el valor dearr[3]
, y la consola imprimeContienes: 2
. Finalmente, en la última iteración,temp1
obtiene el valor dearr[5]
, mientrastemp2
obtiene el valor dearr[6]
, y la consola imprimeContienes: 4
. Por lo tanto, sólo se imprimen los valores 2, 2 y 4 en la consola.