在数组sum中出现Windows应用程序问题
本文关键字:Windows 应用程序 问题 数组 sum | 更新日期: 2023-09-27 17:50:41
给定一个用数字初始化的数组,如何在不使用LINQ或foreach
的情况下添加其所有元素?
我的不完整代码如下:
namespace WindowsApplication5
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void Form1_Load(object sender, EventArgs e)
{
method1(sum1);
MessageBox.Show("The Sum Is = " + sum1.ToString(), "Addition",MessageBoxButtons.OK,MessageB…
}
int sum1;
int[] str = new int[4] { 1, 2, 3, 4 }; // i want to add this 4 values and to be printed on a messagebox//
public int method1(int str)
{
sum1 = str;
return sum1;
}
}
}
输出显示" The sum is = 0",而不是10。
谢谢。
p。S:我不想使用LINQ或foreach
一开始你有不好的全局变量。如果不使用您提到的LINQ
或Foreach
,请尝试如下操作:
//Doesn't have to be a button click...just an example.
private void button1_Click(object sender, EventArgs e)
{
int[] values = new int[4] { 1, 2, 3, 4 };
int result = Sum(values);
MessageBox.Show(result.ToString());
}
int Sum(int[] values)
{
int sum= 0;
for (int i = 0; i < values.Length; ++i)
{
sum += values[i];
}
return sum;
}
不使用foreach
或LINQ
的最简单的选项是使用for
循环或递归。递归解:
int Sum(int[] arr, int index = 0, int current = 0)
{
if(index == arr.Length)
return current;
return Sum(arr, index+1, current+arr[index]);
}
使用for循环:
int Sum(int[] arr)
{
int result = 0;
for(int i = 0; i<arr.Length; i++)
result+=arr[i];
return result;
}
要获取数组的和,您可以简单地输入:int sum = myArray.Sum();
要做到这一点,你需要有:using System.Linq
,因为这是Sum扩展方法定义的地方。
如果你没有linq,那么:
private int CalculateSum(int[] arr){
int total = 0;
foreach(int i in arr)
total += i;
return total;
}
我很好奇你为什么反对for
循环。你能告诉我们吗?
除非我错过了什么,似乎你有两个选择:
1)使用现有的方法(在这种情况下,它将是.Sum()
方法,在LINQ
),或
2)自己写一个方法来计算和(这将是foreach
循环)