c# aspx.cs for循环用于添加数字
本文关键字:用于 添加 数字 循环 for aspx cs | 更新日期: 2023-09-27 18:13:08
我有一个不会执行的for循环。它应该接受用户输入的firstNumber,并将用户输入的secondNumber之间的每个数字相加。例如,firstNumber = 5,第二个数字= 8,numberTotal应该= 26(5+6+7+8)。我似乎无法让我的for循环开始迭代。label2只假定初始值,没有其他任何东西。如果你能帮忙,我将不胜感激。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Menu_Items_and_Numbers : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button2_Click(object sender, EventArgs e)
{
int firstNumber = Convert.ToInt32(TextBox1.Text);
int secondNumber = Convert.ToInt32(TextBox2.Text);
int numberTotal = 0;
for(int i=firstNumber; i > secondNumber; i++)
{
numberTotal += i;
}
Label2.Text = Convert.ToString(numberTotal);
}
}
应该取用户输入的firstNumber并添加用户输入的第二个数字之间的每个数字,一起。为实例,firstNumber = 5,第二个数字= 8,numberTotal应该= 26 (5+6+7+8).
。
for(int i=firstNumber; i > secondNumber; i++)
如果用户输入5和8,执行如下:
for (int i=5 ; 5 > 8; i++)
在这里退出,因为5 > 8 ?= false
。
记住for循环是:
for (initialize variable; while condition; increment variable)
for循环的条件不正确。正确的条件是:
for (int i = firstNumber; i <= secondNumber; i++)
{
numberTotal += i;
}
您的循环条件无效。试试这个
for(int i=firstNumber; i <= secondNumber; i++)
{
numberTotal += i;
}
或:
numberTotal = Enumerable.Range(firstNumber, secondNumber - firstNumber + 1).Sum();
可点数的。Range给出从第一个数字到第二个数字的所有数字,Sum()将它们相加。
你可以这样做以确保第一个数字总是较小的
for (int i = GetSmallerNumber(firstNumber, secondNumber); i < GetLargerNumber(firstNumber, secondNumber); i++)
{
numberTotal +=i;
}
public Int32 GetSmallerNumber(Int32 Number1, Int32 Number2)
{
if (Number1 < Number2)
return Number1;
else
return Number2;
}
public Int32 GetLargerNumber(Int32 Number1, Int32 Number2)
{
if (Number1 < Number2)
return Number2;
else
return Number1;
}
first这种方式不会添加第二个数字因为for循环会在(second-1)处停止因为下一个数字会变成I = second,所以如果你想要添加第二个数字你必须使用second+1而不是仅仅使用second所以它会像
for (int i = first; i < second+1; i++)
或
for (int i = first; i <= second; i++)
第二,如果第一个数字大于第二个数字,你将面临一个问题