Java - пример передачи по значению

У меня вопрос о передаче Java по значению. Я знаю, что переменные, объявленные вне метода, не изменят своих значений, поскольку, когда я вызываю метод I для переменных, метод будет использовать только присвоенное им значение. Но в этом случае я не понимаю, почему int result не получает значение 2. Поскольку increment () получит значение x, поэтому 1, увеличит его на 1 и сохранит значение в переменной результата.

public class Increment {
      public static void main(String[] args) {
        int x = 1;
        System.out.println("Before the call, x is " + x);
        int result = increment(x);
        System.out.println("After the call, x is " + result);
      }
      public static int increment(int n) {
       return n++;

      }
    }

попробуйте return ++ n; вместо

Stultuske 26.10.2018 08:49

Согласно комментарию @eran, чтобы получить то, что вам нужно, вам нужно будет использовать ++n.

npinti 26.10.2018 08:49

См. stackoverflow.com/questions/2371118/…

Frito 26.10.2018 08:52
0
3
70
1

Ответы 1

Оператор пост-инкремента n++ увеличивает значение n на 1, но возвращает предыдущее значение. Следовательно, increment(x) возвращает x, а не x+1.

Тогда чем я ++ полезен в цикле for?

yy123q 26.10.2018 09:00

@ yy123q в цикле for вы не присваиваете значение, возвращаемое i++, переменной. Вы просто проверяете значение i после вызова i++, что дает вам увеличенное значение.

Eran 26.10.2018 09:01

Другие вопросы по теме