Java When outputting String and method return, why does method return output first? -
in code below, if string "mult"
comes before test1(4)
method call, why method output before string? , why bounce form outputting first part of method, leaves method output string, returns method output method's return value?
code:
public class scratch{ public static void main(string[] args){ system.out.println("mult:" + test1(4)); } public static int test1(int n){ system.out.println("n:" + n); return n*2; } }
output:
n:4 mult:8
the first thing note when use +
2 operands 1 of 2 operands string
, result of expression string
.
therefore, in following method invocation expression
system.out.println("mult:" + test1(4));
you invoking printstream#println(string)
since out
variable of type printstream
. note how method accepts single string
argument. therefore, string
has resolved string
concatenation of
"mult:" + test1(4)
for happen, test1(4)
method has executed.
public static int test1(int n){ system.out.println("n:" + n); return n*2; }
this method again uses printstream#println(string)
argument
"n:" + n
this string
concatenation produces string
value
"n:4"
for particular invocation. produced string
value used argument println(..)
method outputs program's standard output.
the method returns value 8
, since 4 * 2 = 8
.
that return value value of invoking test1(4)
method. so
system.out.println("mult:" + test1(4));
is equivalent to
system.out.println("mult:" + 8);
then string
concatenation occurs, transforming
"mult:" + 8
into string
value
"mult:8"
that string
used single argument println(..)
method outputs program's standard output.
Comments
Post a Comment