为什么不是所有的数组值都在 C# 中打印?
why are not all array values printed in c#?
为什么如果我将数组值存储在变量“temp1”和“temp2”中,控制台只打印值 2、2 和 4?
static void Main(string[] args)
{
//Declaración de arreglos solicitados.
double[] array6 = { 3, 2, 1, 2, 3, 4, 3 }; // true
//Imprimimos resultado de funcion "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]}");
}
}
{} 是设置符号。集不包含重复项。请改用 [] 括号。
由于 temp2 = arr[i++] 将计数器 i 增加 1 而无需打印它,因此您将始终仅每隔一个打印一次。
顺便说一句
temp2= arr[i++] ;
仍然具有与 arr[i] 相同的值;
如果要将下一个值分配给 temp2,则必须使用
temp2 = arr[++i];
所以试试这个
var i=0;
for ( i =0; i < arr.Length-1; )
{
temp1 = arr[i];
temp2 = arr[++i];
Console.WriteLine($"Contienes: {arr[i-1]}");
}
Console.WriteLine($"Contienes: {arr[i]}");
问题出在你的 for 循环中。您有 i = 0
并且还声明 i
应该小于 arr.Length - 1
。最后会留下一个值。
试试这个:
for(var i = 0; i < arr.Length; i++)
您还为每个循环递增 i 两次。一次进入循环,一次进入 temp2 = arr[i++] 行。为此,您必须删除最后一行,因为您将在最后一次迭代中得到 IndexOutOfRangeException:
temp2 = arr[i++];
如果出于某种原因需要在每次迭代中写入这两个值,请将其删除或将 for 循环条件调整为 i < arr.Length - 1
。
为什么如果我将数组值存储在变量“temp1”和“temp2”中,控制台只打印值 2、2 和 4?
static void Main(string[] args)
{
//Declaración de arreglos solicitados.
double[] array6 = { 3, 2, 1, 2, 3, 4, 3 }; // true
//Imprimimos resultado de funcion "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]}");
}
}
{} 是设置符号。集不包含重复项。请改用 [] 括号。
由于 temp2 = arr[i++] 将计数器 i 增加 1 而无需打印它,因此您将始终仅每隔一个打印一次。
顺便说一句
temp2= arr[i++] ;
仍然具有与 arr[i] 相同的值;
如果要将下一个值分配给 temp2,则必须使用
temp2 = arr[++i];
所以试试这个
var i=0;
for ( i =0; i < arr.Length-1; )
{
temp1 = arr[i];
temp2 = arr[++i];
Console.WriteLine($"Contienes: {arr[i-1]}");
}
Console.WriteLine($"Contienes: {arr[i]}");
问题出在你的 for 循环中。您有 i = 0
并且还声明 i
应该小于 arr.Length - 1
。最后会留下一个值。
试试这个:
for(var i = 0; i < arr.Length; i++)
您还为每个循环递增 i 两次。一次进入循环,一次进入 temp2 = arr[i++] 行。为此,您必须删除最后一行,因为您将在最后一次迭代中得到 IndexOutOfRangeException:
temp2 = arr[i++];
如果出于某种原因需要在每次迭代中写入这两个值,请将其删除或将 for 循环条件调整为 i < arr.Length - 1
。