Я пытаюсь создать счетчик, который содержит число, которое можно увеличить и уменьшить. Программа также имеет логическую проверку: когда true, счетчик не может пойти отрицательным. Кажется, что программа работает нормально, но я не могу получить методы уменьшения (как уменьшаются на единицу, так и уменьшаться по вводу), чтобы получить логическое право. Он не проверяет логическое значение или что-то еще? Я новичок в Java и нуждаюсь в помощи, понимая, что не так. Класс выглядит следующим образом:Счетчик: метод уменьшения игнорируется boolean
public class Counter {
private int value;
private boolean check;
public Counter(int startingValue, boolean check) {
if (this.check = true) {
this.value = startingValue;
if (value < 0) {
value = 0;
}
}
if (this.check = false) {
this.value = startingValue;
}
}
public Counter(int startingValue) {
this.check = false;
this.value = startingValue;
}
public Counter(boolean check) {
this.check = check;
}
public Counter() {
this.value = 0;
this.check = false;
}
public int value() {
return this.value;
}
public void increase() {
value++;
}
public void decrease() {
if (this.check == true) {
this.value--;
if (value < 0) {
value = 0;
}
} else if (this.check == false) {
this.value--;
}
}
public void increase(int IncreaseAmount) {
if (IncreaseAmount >= 0) {
this.value = value + IncreaseAmount;
}
}
public void decrease(int DecreaseAmount) {
if (DecreaseAmount >= 0) {
this.value = value - DecreaseAmount;
}
if (check == true && value < 0) {
value = 0;
}
}
}
Теперь, если я должен был выполнить основную программу с этим классом, как это, например:
Counter count = new Counter (2, true);
count.decrease();
count.decrease();
count.decrease();
То, что я хочу, чтобы моя программа, чтобы сделать это, чтобы не идти отрицательным поскольку логическая проверка верна. И все же он идет до -1. Почему это?
'if (this.check = true)' должен быть 'if (this.check == true)' или более простым 'if (this.check)' Также не забудьте присвоить значение 'this.check' в ваш конструктор: 'this.check = check'. –
Вы должны назвать свой логический «чек» чем-то вроде «allowNegative», поскольку его легче понять, но это не ваша проблема. –
Зачем это делать?Совершенно прекрасный вопрос, на мой взгляд (Edit: вопрос был в -1, когда я разместил комментарий) – Sondre