Как сделать ограниченное целое число? - PullRequest
0 голосов
/ 29 мая 2018

Для будущих программ мне нужно создать ограниченный целочисленный класс, что означает 0-59 (может использоваться для проблем со временем).

Я не могу сделать так, чтобы он "обернулся".Например, ограниченный int = 54, если я добавлю 10, он должен быть 4.

1 Ответ

0 голосов
/ 29 мая 2018

Вы можете использовать оператор modulo %

int modulo = 60;
int value = 24;
value = (value + 40) % modulo;
System.out.println(value);        //  4
value = (value + 50000) % modulo;
System.out.println(value);        // 34

Если вам нужен класс, вы можете сделать что-то вроде:

class MyIntegerBounded {
    private int value;
    private int bound;

    public MyIntegerBounded(int value, int bound) {
        this.value = value;
        this.bound = bound;
    }

    int get() {
        return value;
    }

    void increment() {
        add(1);
    }

    void add(int toAdd) {
        value = (value + toAdd) % bound;
    }
}

Для использования:

public static void main(String[] args) throws InterruptedException {
    MyIntegerBounded m = new MyIntegerBounded(24, 60);
    System.out.println(m.get());   // 24
    m.increment();
    System.out.println(m.get());   // 25
    m.add(40);
    System.out.println(m.get());   //  5
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...