C# if statement with array.length
本文关键字:array length with statement if | 更新日期: 2023-09-27 18:30:28
我有一个数组和一个if语句,由于某种原因,它没有做我想让它做的事情。因此,用户必须在文本框中输入 5 个数字,然后程序应将其存储在数组中,这里都很好。
但是,如果陈述正确。当用户输入最终数字时,它会崩溃。如果我将<=
更改为<
代码运行良好,但不存储最终输入。
public partial class Form1 : Form
{
int i = 0;
int averageOf5;
int[] numbers = new int[4];
public Form1()
{
InitializeComponent();
}
private void btnCalculate_Click(object sender, EventArgs e)
{
if ( i <= numbers.Length)
{
numbers[i] = Convert.ToInt32(textBoxUserNumbers.Text);
i = i + 1;
textBoxUserNumbers.Text = String.Empty;
}
else
{
int Added5 = 0;
Added5 = numbers.Sum();
averageOf5 = Added5 / numbers.Length;
textBoxAverageResult.Text = Convert.ToString(averageOf5);
}
}
//Just for test purpose
private void button1_Click(object sender, EventArgs e)
{
foreach (int numbersOutput in numbers)
{
//textBoxAverageResult.Text = numbersOutput;
MessageBox.Show(Convert.ToString(numbersOutput));
}
}
}
你应该用 5 而不是 4 的大小声明你的数组
int[] numbers = new int[5];
然后这将按预期工作:
if(i < numbers.Length)
您的问题在于数字数组的声明:
int[] numbers = new int[4];
应该是
int[] numbers = new int[5];
您从<=
到<
所做的更改是正确的。您的数组现在的长度为 5,但数组的索引为 0,您的 i
变量应通过 0,1,2,3,4
。