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);
    }
}

c# aspx.cs for循环用于添加数字

应该取用户输入的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++)

第二,如果第一个数字大于第二个数字,你将面临一个问题