为了账号安全,请及时绑定邮箱和手机立即绑定

将循环打印到 WINdows 表单中的单个标签控件

将循环打印到 WINdows 表单中的单个标签控件

PHP
牛魔王的故事 2022-01-09 10:01:58
如何使用 for 循环从 1-20 打印每个阶乘?输出应该是 Windows 窗体应用程序中的相同标签。我尝试使用它,但没有得到我想要的(垂直打印从 1 到 20 的所有阶乘,即 (2,6,24,) ),而是看到 -2102162736 的值private void nFactorial_Click(object sender, EventArgs e){   long facOut, factorial;   long num = 20;   factorial = num;   for (facOut = num - 1; facOut >= 1; facOut--)   {       factorial *= facOut;                nFactorial.Text += factorial.ToString();     }}
查看完整描述

1 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

问题在于


nFactorial.Text = factorial.ToString(); 

您正在覆盖每个循环迭代的 nFactorial。


你想要的(我假设)是附加文本,所以你想做这样的事情(格式化你想要的格式):


nFactorial.Text += factorial.ToString() + Environment.NewLine; // Environment.NewLine to display each value on a separate line, again format how you'd like

请注意,正如 Selman Genç 所提到的,您需要使用long而不是int(更改Int32为 long):


long facOut, factorial, number;

long num = 20;

把它们放在一起:


private void nFactorial_Click(object sender, EventArgs e)

{

    long facOut, factorial, number;

    long num = 20;

    factorial = num;


    for (facOut = num - 1; facOut >= 1; facOut--)

    {

       factorial *= facOut;         

       nFactorial.Text += factorial.ToString() + Environment.NewLine;  

    }

}

编辑:好的,你正在向后循环。你需要向上而不是向下工作。试试这个:


private void nFactorial_Click(object sender, EventArgs e)

{

    long facOut, factorial;

    long num = 20;

    factorial = 1;


    for (facOut = 1; facOut <= num; facOut++)

    {

        factorial *= facOut;

        tb.Text += factorial.ToString() + Environment.NewLine;

    }

}

注意:如果要跳过1,请facOut = 2在for循环中设置。


查看完整回答
反对 回复 2022-01-09
  • 1 回答
  • 0 关注
  • 213 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号