我想在C#windows窗体应用中创建一个for循环,显示标签中的每个第3个数字。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int[] array = new int[100];
for (int i = 10; i < 101; i += 3)
label1.Text = i.ToString();
}
}
}
我能够在控制台应用程序中生成输出:
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
for (int i = 10; i < 101; i += 3)
{
Console.WriteLine(i);
}
}
}
}
答案 0 :(得分:1)
你的第一个例子很奇怪。您正在从10 ... 100
递增计数器3
进行迭代,然后您正在迭代int[]
中的每个元素(它只是零到零)。现在您的控制台应用程序正在执行第一个循环并输出所有结果i
。
现在这不起作用的原因是你将Text
属性设置为i
的当前值,所以我的猜测是你只得到最后一个数字(100)。
这是一个简单的解决方法。
string output = "";
for (int i = 10; i < 101; i += 3)
{
output += i.ToString() + " ";
}
label1.Text = output;
这会创建一个从10
开始的字符串,并输出每第三个数字,直到循环结束。
答案 1 :(得分:0)
使用运算符+=
代替=
将所有字符串追加到一起。并添加linefeed
分隔符。
label1.Text += i.ToString() + "\n";
答案 2 :(得分:0)
它与控制台应用程序中的大致相同。只有不同之处在于您必须将下一个数字连接到显示的字符串。
一个非常简单的解决方案(假设您有一行TextBox
)
private void button1_Click(object sender, EventArgs e)
{
for (int i = 10; i < 101; i += 3)
{
label1.Text = label1.Text + i.ToString();
}
}
如果您对string
进行了多次操作,则应考虑使用stringbuilder
:
private void button1_Click(object sender, EventArgs e)
{
var sb = new StringBuilder();
for (int i = 10; i < 101; i += 3)
{
sb.Append(i);
}
label1.Text = sb.ToString();
}