输入是整数数组,如果所有整数都是(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
我知道条件的语法是错误的,我怎么能这样做?
答案 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;