Can somebody tell me why the value returned is 3 and not 8. Doesn\'t the return x
statement from the addFive
method change the value of x
when you call a method in java and you don't assign for any variable, the changes will happen in the method call, after that this value will be lost and go back to the value that you assign. to see the result you should do that System.out.println(addFive(x));
but if you want to change the value of x
you have to assign x = addFive(x);
The value in the main function is completely different from the value in the addFive(int x )
function. You send an x
from main to addFive(int x)
method.
JVM makes a copy of x and send it to addFive(int x)
method. Then x
changes in the addFive(int x)
method. But the x
in main()
method remains unchanged.
If you want to get the changed value returned by addFive(int x)
from main method you can do the following -
int returnedValueFromAddFive = addFive(x)
Hope it will help.
Thanks a lot.