I have the attribute:
private int Number;
I want to limit this number so that it can only be between the values 1 - 3.
Would I do this within a method when I set the value or is there a way of predefining that I only want values 1 - 3 to be valid values for this integer?
Many thanks in advance.
Edit:
I want to take an input of a number between 1 -3.
I've tried using a while, do and for loop each of which I can't get to work without getting stuck in an infinite loop.
Here's some example code:
    private int Number;
    public void setNumber(int aNumber) {
        int count = 1;
        while (count !=0) {
            if ((aNumber < 1) || (aNumber > 3)) {
                System.out.println("Value is out of range 1-3");
                System.out.println("Please try again");
                break;
            } 
            else {
                this.Number = aNumber;
                count = 0;
            }
    }
}
                Unlike some languages (e.g. Ada), Java does not have a way to "predeclare" the acceptable range of a number. However, if you encapsulate the anumber into a class, you can enforce such a restriction using a setter method:
class RestrictedRangeExample {
    private int anumber;
    public void setAnumber(int newanumber) {
        if (newanumber >= 1 && newanumber <= 3) {
            anumber = newanumber;
        } else {
            throw new IllegalArgumentException("anumber out of range");
        }
    }
}
                        public void setAnumber(int value) {
    if ((value < 1) || (value > 3))
        throw new IllegalArgumentException("value is out of range for anumber");
    this.anumber = value;
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With