给定最大和范围循环

时间:2018-06-20 14:28:24

标签: java loops for-loop

给出最大数量和范围数量,我想打印以下内容,但要尽可能短。我不知道使用IntStream是否可以完成。

输入: 最大值= 36(或任何数字) 范围= 10(或任何数字)

输出: 0-9 10-19 20-29 30-35

我的代码:

totalItems=35
rangeMax=10
rangeFrom=0
rangeTo=0
while (true) {
    if(totalItems>rangeTo+rangeMax){
        rangeFrom=rangeTo+1;
        rangeTo=rangeTo+rangeMax;
    } else if(totalItems>rangeTo+1){
        rangeFrom=rangeTo+1;
        rangeTo=rangeTo+(totalItems-rangeFrom);
    } else {
        return null;
    }
}

1 个答案:

答案 0 :(得分:0)

public static void loopingIssue(Integer totalItems, Integer range) {
    IntStream.range(0, totalItems).filter(i -> i % range == 0)
            .mapToObj(e -> mapToGroup(e, totalItems, range))
            .forEach(System.out::print);
}

public static String mapToGroup(Integer e, Integer totalItems, Integer maxRange) {
    if (e + maxRange >= totalItems) {
        return e + "-" + (totalItems - 1);
    } else {
        return e + "-" + (e + maxRange - 1) + ", ";
    }

}