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

时间:2015-09-16 23:59:36

标签: c# for-loop

我有一个不会执行的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);
    }
}

5 个答案:

答案 0 :(得分:1)

  

应该取用户输入的firstNumber并添加   用户输入的secondNumber之间的每个数字一起。对于   实例,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)

答案 1 :(得分:1)

你的for循环的条件不正确。正确的条件是:

for (int i = firstNumber; i <= secondNumber; i++)
{
    numberTotal += i;
}

答案 2 :(得分:0)

您的循环条件无效。试试这个

    for(int i=firstNumber; i <= secondNumber; i++)
    {
        numberTotal += i; 
    }

或者这个:

numberTotal = Enumerable.Range(firstNumber, secondNumber - firstNumber + 1).Sum();

Enumerable.Range为您提供从第一个到第二个数字的所有数字,Sum()将它们相加。

答案 3 :(得分:0)

你可以做这样的事情,以确保第一个数字始终是较小的数字

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

答案 4 :(得分:0)

首先这样不会添加第二个数字因为for循环将停在(second-1),因为下一个数字会使它i = second,所以如果你想要添加第二个数字你必须使用第二个+ 1而不是第二个,所以它就像

 for (int i = first; i < second+1; i++) 

for (int i = first; i <= second; i++)

如果第一个数字大于第二个数字

,您将面临问题