前提:位于List中的数组。用户输入列表中的数组,在数组中循环3个字符串,选择再次循环以在循环中创建另一个数组。使用in打印列表和数组。 发生的事情/问题:当选择创建另一个循环“数组”时,第二个循环“数组”将覆盖第一个循环“数组”的值。如果第一个数组的值是a,b,c,第二个循环/数组的值是d,s,g。当我打印它时,第二个数组已覆盖第一个数组。打印第一个数组:d,s,g第二个数组d,s,g。
我如何在列表中创建新数组,次数取决于用户想要的次数?
List<string[]> Loggbok = new List<string[]>();
string[] input = new string[3] ;
bool tr = true;
while (tr)
{
Console.WriteLine("Gör en ny Logg inlägg");
for (int i = 0; i < 3; i++)
{
string Object = Console.ReadLine();
input[i] = Object;
}
Loggbok.Add(input);
Console.Write("Make a nother array press: j if not inputn : ");
string val = Console.ReadLine();
if (val == "j")
{
tr = true;
}
else
{
tr = false;
}
}
Console.WriteLine(Loggbok[0][0]); //print first array in list
Console.WriteLine(Loggbok[0][1]);
Console.WriteLine(Loggbok[0][2]);
Console.WriteLine(Loggbok[1][0]); //print second array in list
Console.WriteLine(Loggbok[1][1]);
Console.WriteLine(Loggbok[1][2]);
Console.ReadLine();
答案 0 :(得分:1)
将字符串数组的声明移动到while循环中,以便创建一个新数组。现在,您继续使用相同的数组。因此,在while循环中的每次迭代中,新结果都会覆盖以前的结果,这就是为什么最终使用上一次迭代的值的原因。
//string[] input = new string[3]; <- removed here
while (tr)
{
Console.WriteLine("Gör en ny Logg inlägg");
string[] input = new string[3]; //<- added here
//....
}
答案 1 :(得分:0)
放入此行
BEGIN
DECLARE cur2 CURSOR FOR
SELECT tpud_tsh_pk,
TCEG,
TPCH,
TSH,
TBMH,
TPOC,
RK3
FROM report_ar_temp2
FOR NOT FOUND SET v_finished = 1;
OPEN cur2;
loop_report:LOOP
FETCH cur2 INTO v_tpud_tsh_pk_2, v_TCEG, v_TPCH, v_TSH, v_TBMH, v_TPOC, v_RK3;
IF v_finished = 1 THEN
LEAVE loop_report;
END IF;
UPDATE report_ar_temp
SET `Giro` = v_TCEG, `PCI` = v_TPCH, `PDCN` = v_TSH, `Transfer` = v_TBMH, `Program` = v_TPOC, `Hub. RK` = v_RK3
WHERE `pk` = v_tpud_tsh_pk_2;
END LOOP loop_report;
CLOSE cur2;
END;
进入while循环。它对我有用。