我想检查一个数组中的某个值是否小于10且大于1.问题是当我运行我的代码时,它总是返回-1,如下例所示。我做错了什么?
int[] note = new int[5] {2, 3, 4, 5};
foreach (int element in note)
{
if(element <= 10 & element >= 0)
suma = suma + element;
else
return -1;
}
答案 0 :(得分:1)
你忘记了suma的回归。到那时离开函数的唯一方法是返回-1。
同样如果一个元素与您的条件不匹配,它将返回-1 。
int[] note = new int[4] {2, 3, 4, 5};
int suma = 0;
foreach (int element in note)
{
if (element <= 10 & element >= 0)
suma = suma + element;
// You may want to remove the following part
else
return -1;
}
return suma; // This was missing
这是在没有-1的情况下运行的代码的小提琴 https://dotnetfiddle.net/t3uL1G
您也可以使用Linq仅汇总符合您条件的所有元素:
using System.Linq;
...
int suma = note.Where(e => e < 11 && e > 0).Sum(); // + 0 is redundant.