2

好的,所以在这个程序中,我必须检查数组中的所有值是否都大于特定数字。

这就是我到目前为止所拥有的

public static boolean isGameOver(){
  int check = 0;
  for(int k = 0; k < data.length; k++){
    if (data[k] >= limit)
      check++;
  }
  if (check == data.length)
    return true;
  else 
    return false;
}

限制变量是数组中所有数字必须大于或等于的数字。

你能帮我解决这个问题并解释为什么我的方法行不通吗?

4

2 回答 2

6

不是检查所有元素是否大于特定数字,而是检查一个数字是否小于特定数字以及return false是否还有一个数字return true

public static boolean isGameOver(int limit, int[] data){
      for(int k = 0; k < data.length; k++){
        if (data[k] < limit)
          return false;
      }
      return true;
    }
于 2013-11-01T23:39:20.807 回答
1

除非您传入限制值以及要检查的数组,否则该方法将不起作用。将您的标题更改为:

public static boolean isGameover(int limit, int[] data)

这应该足以让您的代码正常工作(您的参数设置不正确)。我为您提供了一个包含更少步骤的替代解决方案。

您需要确定数组中的所有数字是否都大于限制,因此您需要检查的唯一条件是数组中的任何元素是否小于限制。

for(int i = 0; i < data.length; i++){
    if(data[i] <= limit) // the condition you're checking for is that they're all greater than, so if its less than or equal to, it gets flagged
        return false;
}
return true; // if it goes through the whole array without triggering a false, it has to be true.
于 2013-11-01T23:38:50.557 回答