метод счетчика не увеличивается - PullRequest
0 голосов
/ 10 июня 2018

Я выполняю упражнение, в котором моя основная программа выглядит следующим образом и использует класс счетчика, чтобы вывести список чисел, пока он не достигнет предела, который я задаю при создании объекта, а затем возвращается к 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;
  }

}

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

Вы должны поместить this.value = 0 в оператор else , поскольку он выполняется каждый раз.

Модифицированный код:

public void next(){
    if (this.value <= upperLimit) {
        this.value+=1;

    }
    else
        this.value = 0;
}
0 голосов
/ 10 июня 2018

Вам нужно else:

if (this.value <= upperLimit) {
    this.value+=1;
} else {
    this.value = 0;
}
...