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