每个数组[i]在间隔中

时间:2015-10-10 13:03:00

标签: java arrays

输入是整数数组,如果所有整数都是(1; 5>或< 5; 10)则返回true,否则返回false。

    public static boolean count(int[] array){
        if(10 >= int i : array && int i : array >= 5 || 0 <= int i : array &&  int i : array <= 5) {
            return true;
        }else {
            return false; 
            break;
        }}

预期输出

    array[1,2,3,2,4] - true
    array[5,7,6,7,8] - true
    array[1,3,4,7,5] - false

我知道条件的语法是错误的,我怎么能这样做?

4 个答案:

答案 0 :(得分:0)

这是用于迭代数组的for循环的语法。如果条件失败,它将立即返回false,否则返回true

public static boolean count(int[] array) {
 for(int i = 0; i<array.length; i++) {
   if(! <put you condition here>) {
       return false;
   } 
 }
 return true;
}

注意:!是否定符号。它会与你在if条件中所做的相反。

答案 1 :(得分:0)

这是一种方法,我还改进了方法的名称:

public static boolean allWithin1to5or5to10(int[] array) {
    return array.length != 0 && (allWithinRange(array, 1, 5) || allWithinRange(array, 5, 10));
}

public static boolean allWithinRange(int[] array, int min, int max) {
    for (int num : array) {
        if (!(min <= num && num <= max)) {
            return false;
        }
    }
    return true;
}

它通过了这些单元测试:

assertTrue(allWithin1to5or5to10(new int[]{1, 2, 3, 2, 4}));
assertTrue(allWithin1to5or5to10(new int[]{5, 7, 6, 7, 8}));
assertFalse(allWithin1to5or5to10(new int[]{1, 3, 4, 7, 5}));

答案 2 :(得分:0)

这是用int数组检查的另一种方法。

public static boolean count(int[] array) {
  for(Integer arr: array){
    if(<Your condition>)
        return true;
  }
  return false;
}

答案 3 :(得分:0)

您也可以使用Java 8流:

boolean oneToFive = IntStream.of(arr).allMatch(i -> (i >= 1 && i <= 5));
boolean fiveToTen = IntStream.of(arr).allMatch(i -> (i >= 5 && i <= 10));
boolean withinRange = oneToFive || fiveToTen;