如何在数组中添加低于40的数字

时间:2013-12-07 03:10:10

标签: java arrays if-statement for-loop

我无论如何都无法找到40以下的数字。当我以这种方式编码时,它会将数组中的所有数字相加。

public static int underForty(int[] nums2)   
    {
        int sum = 0;
        for ( int eachValue : nums2)
        {
             if (eachValue < 40)
                {
                   sum = sum + eachValue;
                }
        }
        return sum;
    }

2 个答案:

答案 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,正确答案。所以我很确定您的代码 正在运行。