类值不受方法影响

时间:2015-08-21 03:28:09

标签: java

我正在关注赫尔辛基大学的Java课程,我在示例75.1上遇到了困难。

link

问题是我的方法不会影响对象的价值。例如,练习需要输出

value: 10
value: 9
value 8

但是,我收到了:

value: 10
9
value: 10
9
value: 10.

我使用的代码是:

public void decrease() {
    System.out.println(this.value - 1);

此外,我不能使用return语句,因为该方法必须是无效的。

6 个答案:

答案 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);