Я делаю упражнение, в котором моя основная программа выглядит так и использует класс счетчика для печати списка чисел до тех пор, пока он не достигнет предела, который я даю при создании объекта, а затем возвращается к 0. Я ожидаю, что он вернет 0,1,2,3,4,5, а затем вернется к 0, но все, что он делает, дает мне 0.
public class Main {
public static void main(String args[]) {
BoundedCounter counter = new BoundedCounter(5);
System.out.println("value at start: "+ counter);
int i = 0;
while (i< 10) {
counter.next();
System.out.println("Value: "+counter);
i++;
}
}
}
А мой класс BoundedCounter выглядит так:
public class BoundedCounter {
private int value;
private int upperLimit;
public BoundedCounter(int Limit) {
upperLimit = Limit;
}
public void next(){
if (this.value <= upperLimit) {
this.value+=1;
}
this.value = 0;
}
public String toString() {
return "" + this.value;
}
}
Попробуйте отладить свою программу, чтобы увидеть, какая строка this.value установлена на 0 в методе next.
(примечание: это не Python. В большинстве случаев вам не нужен this..)




Вам понадобится else:
if (this.value <= upperLimit) {
this.value+=1;
} else {
this.value = 0;
}
Вам нужно поместить this.value = 0 в еще заявление, поскольку он выполняется каждый раз.
Измененный код:
public void next(){
if (this.value <= upperLimit) {
this.value+=1;
}
else
this.value = 0;
}
Ваш
nextметод всегда устанавливаетvalueв 0