我正在关注赫尔辛基大学的Java课程,我在示例75.1上遇到了困难。
问题是我的方法不会影响对象的价值。例如,练习需要输出
value: 10
value: 9
value 8
但是,我收到了:
value: 10
9
value: 10
9
value: 10.
我使用的代码是:
public void decrease() {
System.out.println(this.value - 1);
此外,我不能使用return语句,因为该方法必须是无效的。
答案 0 :(得分:2)
右。一般来说,“print x - 1”不会改变x的值。所以,我们必须改变this.value
。我们是通过分配:
public void decrease() {
this.value = this.value - 1; // decrease the value
System.out.println(this.value); // print the new value
}
我们实际上可以使用一元--
运算符执行此操作:
public void decrease() {
System.out.println(--this.value); // Decrease this.value first,
// then print the new value
}
注意--
的展示位置。如果我们写--this.value
,我们会减少并然后打印。如果我们写this.value--
,我们会打印然后减少。
答案 1 :(得分:1)
您可以打印然后递减值:
System.out.println(this.value--);
答案 2 :(得分:1)
只是递减价值。调用者似乎负责打印(通过调用printValue)
public void decrease() {
this.value--;
}
答案 3 :(得分:0)
仅仅调用this.value - 1
不会更改value
的值。如果您想实际更改值,您有两个选择:
value--
)或重新分配变量(这是减量的长手段)。
value = value - 1
答案 4 :(得分:0)
没关系,我已经明白了。
代码必须是:
this.value = this.value - 1;
答案 5 :(得分:0)
System.out.println(this.value - 1);
只打印值-1,没有赋值。
你需要像
这样的东西System.out.println(this.value = this.value -1);
或
System.out.println(this.value - = 1);