0 / 0 / 2
Регистрация: 21.01.2013
Сообщений: 12
|
|
1 | |
Почему такой результат?21.01.2013, 22:28. Показов 995. Ответов 4
Метки нет (Все метки)
public class Ref
{ public static void main(String[] args) { int m = 5; int n = 6; System.out.println("M=" + m + " N=" + n); swap(m, n); System.out.println("M=" + m + " N=" + n); } private static void swap(int a, int b) { int c = a; a = b; b = c; } } Выводит: М=5 N=6 и так оба раза, почему не переопределяются переменные во втором выводе? Спасибо.
0
|
21.01.2013, 22:28 | |
Ответы с готовыми решениями:
4
Почему такой результат Почему выдает такой результат? Почему результат byte такой? Почему выдает такой результат? |
63 / 63 / 12
Регистрация: 29.08.2012
Сообщений: 152
|
|
21.01.2013, 23:19 | 2 |
Как на выводе что то поменяется, если ты присваиваешь значение новым переменным, а выводишь совершенно другие?
Либо присваивай значение своим m и n, либо выводи a и b в теле метода
0
|
0 / 0 / 2
Регистрация: 21.01.2013
Сообщений: 12
|
|
21.01.2013, 23:23 [ТС] | 3 |
Но я же вызвал там метод swap(m, n) посредине для того чтобы поменять местами m и n.
0
|
63 / 63 / 12
Регистрация: 29.08.2012
Сообщений: 152
|
|||||||||||
21.01.2013, 23:37 | 4 | ||||||||||
Все правильно, но только этого не происходит, потому что ты присваиваешь передаваемые значения переменной a и b, а должен m и n.
Добавлено через 6 минут Кликните здесь для просмотра всего текста
1
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
22.01.2013, 18:55 | 5 |
При передаче примитивов в метод их значения копируются в стек. Вот в стеке Вы их местами и меняете. А вовне метода как они были - так и остались.
1
|
22.01.2013, 18:55 | |
22.01.2013, 18:55 | |
Помогаю со студенческими работами здесь
5
Cos аргумента, почему такой результат? Почему программа выдает такой результат Почему такой результат работы функции? Почему код с делегатами дает такой результат? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |