Java - 方法输出没有返回新值?

时间:2018-03-15 22:02:09

标签: java methods

我试图找出我遇到的一些问题。

基本上我的问题是,我的方法返回的值是不对的。

我有打印行语句只是为了确保它正常工作但它总是返回1,即使我调用另一个应该返回String的方法。

每次调用方法时都应该更新变量current_number/image_number(如果我从1开始一直呼叫前转,我应该得到2,{{1 },3等。)。

这是我的代码

4

3 个答案:

答案 0 :(得分:1)

好的,我想我明白了。

switch语句中,当您调用forward方法时,返回新数字时,您需要一个值来传递新数字,否则会丢失。

将代码更改为此可能会有所帮助。

switch (choice) {
    case 1:
      current_number = forward(current_number);
      break;

    case 4:
      exit = true;
      break;
}

答案 1 :(得分:1)

int是Java中的原始数据类型。这意味着您的forward current_number函数与您的方法current_number不同。您传入的变量具有相同的值,但不是相同的引用。

要解决此问题,您需要将current_number的值分配给forward的结果。

current_number = forward(current_number);

有用的读物​​:

答案 2 :(得分:0)

无论何时调用该方法,都会传递current_number的副本。然后,当方法结束时,丢弃副本。请尝试使用Integer对象。