C# 为什么我的for循环只显示最后的结果?
我希望我的C# 为什么我的for循环只显示最后的结果?,c#,C#,我希望我的label2.Text显示乘法表的每个相关结果,但只显示最后一个结果。 我使每个复选框只等于一个数学表。checkbox1=乘法表1,checkbox2=乘法表2,依此类推。。。 为什么在我的Windows窗体中,只有最后一个结果显示在mylabel2.Text属性中? 另外,我正在学习C#的入门课程 int倍数; 整数倍数; 对于(multiplyNumber=1;multiplyNumber而言,您不是在连接结果,而是只设置当前值 这会起作用,但不是最干净/有效的方法: label
label2.Text
显示乘法表的每个相关结果,但只显示最后一个结果。
我使每个复选框只等于一个数学表。checkbox1=乘法表1,checkbox2=乘法表2,依此类推。。。
为什么在我的Windows窗体中,只有最后一个结果显示在mylabel2.Text
属性中?
另外,我正在学习C#的入门课程
int倍数;
整数倍数;
对于(multiplyNumber=1;multiplyNumber而言,您不是在连接结果,而是只设置当前值
这会起作用,但不是最干净/有效的方法:
label2.Text += sum + "\n";
首先尝试使用StringBuilder
生成结果,并在最后为文本框指定StringBuilder
值
StringBuilder sum = new StringBuilder();
int multiplyWith = checkBox1.Checked ? 1 : 2;
for (int multiplyNumber = 1; multiplyNumber <= 12; multiplyNumber++)
{
sum.AppendLine(multiplyNumber * multiplyWith);
}
label2.Visible = true;
label2.Text = sum.ToString();
StringBuilder sum=new StringBuilder();
整数倍等于复选框1。选中?1:2;
对于(int multiplyNumber=1;multiplyNumber,如果需要,可以将其更改为:
int multiplyWith;
int multiplyNumber;
var results = string.Empty;
for (multiplyNumber = 1; multiplyNumber <= 12; multiplyNumber++)
{
if (checkBox1.Checked == true)
{
multiplyWith = 1;
int sum = multiplyNumber * multiplyWith;
label2.Visible = true;
results += sum + "\n"
}
else if (checkBox2.Checked == true)
{
multiplyWith = 2;
int sum = multiplyNumber * multiplyWith;
label2.Visible = true;
results += sum + "\n"
}
}
您可以从中编辑这一行
label2.Text = sum + "\n";
到
这有很多重复。根本原因是C#直到循环结束后才从方法中获取控件。每次迭代都要替换结果我知道这是不好的重复代码,但保存和的变量是否没有被替换为新值,然后用for循环显示。我试着将if语句中的e for循环,但结果保持不变。你说我替换值是什么意思。我知道需要替换该值才能显示新值,但为什么新值没有显示,而只是被替换,导致它只显示最后一个值?@ChristoffelJoubert你使用的值是什么要在label2.Text
属性中显示的ant?请编辑您的问题,在label2.Text
中包含复选框状态的示例和您想要的结果。代码片段仅用于javascript/html/css,请不要将其用于c代码谢谢。很抱歉,代码片段。谢谢。这正是我要查找的内容例如。我知道它很小,因为逻辑对我来说很有意义。谢谢。我确实创建了一个空值的变量,我相信它与string.empty相同。我错过的是总和之前的+=值。谢谢
label2.Text = results;
label2.Text = sum + "\n";
label2.Text += sum + "\n";