我无论如何都无法找到40以下的数字。当我以这种方式编码时,它会将数组中的所有数字相加。
public static int underForty(int[] nums2)
{
int sum = 0;
for ( int eachValue : nums2)
{
if (eachValue < 40)
{
sum = sum + eachValue;
}
}
return sum;
}
答案 0 :(得分:0)
请通过某种形式的“记录”来验证您的假设。
public static int underForty(int[] nums2) {
System.out.println(Arrays.toString(nums2)); // print the array contents.
int sum = 0;
for (int eachValue : nums2) {
System.out.println("before Sum is: " + sum); // display the sum before adding.
if (eachValue < 40) {
sum = sum + eachValue;
} else {
System.out.println("value: " + eachValue + " >= 40"); // display the other(s).
}
System.out.println("after Sum is: " + sum); // display the sum after adding.
}
return sum;
}
public static void main(String[] args) {
int sum = underForty(new int[]{1,2,3,50});
System.out.println("main sum = " + sum);
}
当我跑上面的时候;我看到了这个输出
[1, 2, 3, 50]
before Sum is: 0
after Sum is: 1
before Sum is: 1
after Sum is: 3
before Sum is: 3
after Sum is: 6
before Sum is: 6
value: 50 >= 40
after Sum is: 6
main sum = 6
这对我来说似乎是正确的。
答案 1 :(得分:0)
我并不熟悉Java,但看看代码,它看起来完全有效。我认为问题可能与nums2
中的值有关。数组中有哪些项目?
我运行了这段代码:
public class Foo{
public static void main(String []args){
int[] nums2 = {1,49,999,35,46,19,-5};
int sum = 0;
for ( int eachValue : nums2)
{
if (eachValue < 40)
{
sum = sum + eachValue;
}
}
System.out.println( sum );
}
}
我得到了50,正确答案。所以我很确定您的代码 正在运行。