Как уже писали другие, Java - это объектно-ориентированный язык программирования, и вы должны этим воспользоваться.
Хороший способ гарантировать, что значение остается в пределах определенного диапазона, - реализовать тип, в котором можно установить верхний предел, нижний предел и изменяемое значение.Базовая реализация может выглядеть следующим образом:
public class RangedValue {
private final int lowerLimit;
private final int upperLimit;
private int value;
public RangedValue(int lowerLimit, int upperLimit, int value) {
if (lowerLimit >= upperLimit) {
throw new IllegalArgumentException("The lowerLimit must be less " +
"than the upperLimit!");
}
this.lowerLimit = lowerLimit;
this.upperLimit = upperLimit;
this.value = RangedValue.ensureRange(value, upperLimit, lowerLimit);
}
/**
* Helper method to ensure that a value stays within the defined range.
*
* @param value The value to be kept in the defined range
* @param upperLimit The upper limit of the range
* @param lowerLimit The lower limit of the range
* @return The value or the lowerLimit or the upperLimit
*/
private static int ensureRange(int value, int upperLimit, int lowerLimit) {
if (value > upperLimit) {
return upperLimit;
} else if (value < lowerLimit) {
return lowerLimit;
}
return value;
}
public int increaseValueBy(int value) {
int increased = this.value + value;
this.value = RangedValue.ensureRange(increased, upperLimit, lowerLimit);
return this.value;
}
public int reduceValueBy(int value) {
return increaseValueBy(-value);
}
public int setValue(int value) {
return RangedValue.ensureRange(value, upperLimit, lowerLimit);
}
public int getLowerLimit() {
return lowerLimit;
}
public int getUpperLimit() {
return upperLimit;
}
public int getValue() {
return value;
}
}
Тогда вы можете использовать этот класс для своего существующего кода:
RangedValue food = new RangedValue(0, 50, 30);
RangedValue health = new RangedValue(0, 50, 30);
RangedValue happiness = new RangedValue(0, 50, 30);
System.out.println(" type cat name");
catName = input.nextLine();
Вы также можете определить cat в отдельном классе, изКонечно, но это зависит от вас.