為什么如果我將陣列值存盤在變數“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]}");
}
}
uj5u.com熱心網友回復:
問題出在您的 for 回圈中。您已經i = 0并且還宣告i應該小于arr.Length - 1。最后會留下一個值。
試試這個:
for(var i = 0; i < arr.Length; i )
您還為每個回圈增加 i 兩次。一次在回圈中,一次在 temp2 = arr[i ] 行中。為此,您必須洗掉最后一行,因為您將在最后一次迭代中得到 IndexOutOfRangeException:
temp2 = arr[i ];
i < arr.Length - 1如果出于某種原因您需要在每次迭代中寫入這兩個值,請洗掉它或將您的 for 回圈條件調整為。
uj5u.com熱心網友回復:
由于 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]}");
uj5u.com熱心網友回復:
{} 是設定符號。集合不包含重復項。使用 [] 括號代替。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/369806.html
