Try to predict the output of following code:
The output is
This unpredictable output is due the fact that the compiler evaluates the given expression from left to right given that the operators have same precedence. Once it encounters the String, it considers the rest of the expression as of a String (again based on the precedence order of the expression).
- System.out.println(2 + 0 + 1 + 6 + “GeeksforGeeks”); // It prints the addition of 2,0,1 and 6 which is equal to 9
- System.out.println(“GeeksforGeeks” + 2 + 0 + 1 + 6); //It prints the concatenation of 2,0,1 and 6 which is 2016 since it encounters the string initially. Basically, Strings take precedence because they have a higher casting priority than integers do.
- System.out.println(2 + 0 + 1 + 5 + “GeeksforGeeks” + 2 + 0 + 1 + 6); //It prints the addition of 2,0,1 and 5 while the concatenation of 2,0,1 and 6 based on the above given examples.
- System.out.println(2 + 0 + 1 + 5 + “GeeksforGeeks” + (2 + 0 + 1 + 6)); //It prints the addition of both 2,0,1 and 5 and 2,0,1 and 6 based due the precedence of ( ) over +. Hence expression in ( ) is calculated first and then the further evaluation takes place.
This article is contributed by Pranjal Mathur. If you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
- Different ways to create objects in Java
- Operators in Java
- Arrays in Java
- Iterators in Java
- How to Initialize and Compare Strings in Java?
- Java instanceof and its applications
- Different ways for Integer to String Conversions In Java
- StringBuffer class in Java
- String class in Java | Set 1
- Java Numeric Promotion in Conditional Expression
- final, finally and finalize in Java
- BigInteger Class in Java
- Comparison of Autoboxed Integer objects in Java
- Inner class in java
- Bitwise right shift operators in Java