for循环显示每第3个数字

时间:2017-08-29 04:54:19

标签: c# for-loop

我想在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);
            }
        }
    }
}    

3 个答案:

答案 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();
}