我正在尝试创建一个乘法表。
这是我必须创建的:
这是我目前拥有的:
我的代码(用于while按钮):
private void button1_Click(object sender, EventArgs e)
{
int i = 0;
string s = " ";
int m = int.Parse(textBox4.Text);
while (i <= 10)
{
s = s + "\n" + m + " * " + i + " = " + m * i + "\n";
i++;
}
textBox1.Text = s;
label2.Text = "Timetable created with <<while>>";
}
很明显,问题出在String = s上-但我无法弄清楚!
答案 0 :(得分:1)
在Windows中,您应使用\r\n
将插入符号移至新行。它存储在Environment.NewLine
中。
更改
s = s + "\n" + m + " * " + i + " = " + m * i + "\n";
到
s = s + "\n" + m + " * " + i + " = " + m * i + Environment.NewLine;
顺便说一句:尝试寻找ListView
控件,看起来它与您的任务更相关。
答案 1 :(得分:0)
由于要在循环中附加多个字符串,因此最好使用StringBuilder
:
var sb = new StringBuilder();
while (i <= 10)
{
sb.Append(m)
.Append(" * ")
.Append(i)
.Append(" = ")
.AppendLine(m * i); // AppendLine will append the line break for you after the value
i++;
}
textBox1.Text = sb.ToString()
这与以下事实有关:字符串是不可变的,因此对于每个附加,您实际上是在内存中创建一个新字符串-而StringBuilder
使用内部缓冲区(可能是字符数组)逐段构建字符串,并具有更好的性能。