簡體   English   中英

Java:生成一定范圍內的數字序列?

[英]Java: Generate a sequence of numbers within a range?

我需要能夠生成一個范圍內的一系列上升或下降數字。

public int nextInRange(int last, int min, int max, int delta, boolean descending) {
        delta *= descending ? -1 : 1;

        int result = last + delta;
        result %= max;
        return Math.max(result, min);
}

對於升序值,但對於降序值,此方法效果很好。 我已經盯着看了一段時間了,我不確定如何使它適用於下降值。 有任何想法嗎?

怎么樣,當您想要一個降序序列時, delta為負?

public int nextInRange(int last, int min, int max, int delta) {
    int result = last + delta;

    // now clip to min and max
    if (result > max) {
        result = max;
    } else if (result < min) {
        result = min;
    }

    return result;
}

或可能不太直接,使函數的主體為單行:

return Math.min(max, Math.max(last + delta, min));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM