gpt4 book ai didi

java - 为什么我的整数增加了 2 而不是 1? java

转载 作者:行者123 更新时间:2023-11-29 09:46:51 24 4
gpt4 key购买 nike

我已经实现了一个类似于简单时钟的代码,每次在我的类里面它应该只增加 1。到目前为止,这是我在主程序中的内容:

public static void main(String[] args) {
BoundedCounter counter = new BoundedCounter(60);
System.out.println("Value at start: " + counter);
int i = 0;
while (i < 10) {
counter.next();
System.out.println("Value: " + counter);
i++;
}
}

这里是“BoundedCounter”类:

class BoundedCounter {

private int value;
private int upperBound;

public BoundedCounter(int upperBound) {
this.upperBound = upperBound;
this.value = 0;
}

public void next () {
if (value++ > upperBound) {
value = 0;
} else {
value++;
}
}

public String toString() {
return "" + value;
}
}

这段代码的输出是:

Value at start: 0
Value: 2
Value: 4
Value: 6
Value: 8
Value: 10
Value: 12
Value: 14
Value: 16
Value: 18
Value: 20

我不明白为什么它会增加 2,而在类中 while 语句有 value++;这意味着它应该增加 1。

我在这里错过了什么?

最佳答案

您的if 执行value++ 然后(假设输入了else)您再次执行它。改变

if (value++ > upperBound) { 
value = 0;
} else {
value++;
}

类似的东西

if (value + 1 > upperBound) { 
value = 0;
} else {
value++;
}

if (value < upperBound) {
value++;
} else {
value = 0;
}

关于java - 为什么我的整数增加了 2 而不是 1? java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49922491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com