java - Nested "System.out.print" output -
why program:
import java.io.*; public class testpage { public static void main(string [] args) { pri(); } public static int p2 (int x) { system.out.print("p"); return x * x + 1; } public static void pri ( ) { int y = 3; system.out.print( p2(y) + "-" + p2(y)); } } output this:
pp10-10 specifically, why output on each side of - different when method calls same?
java evaluate operands of binary operator such + before performing operation. means p2(y) called twice before concatenations happen. 2 method calls each print p before concatenations, system.out.print prints 10-10.
the jls, section 15.17.2, covers this:
the java programming language guarantees every operand of operator (except conditional operators &&, ||, , ? :) appears evaluated before part of operation performed.
Comments
Post a Comment