This is my code:
public static void main(String[] arg)
{
String x = null;
String y = "10";
String z = "20";
System.out.println("This my first out put "+x==null?y:z);
x = "15";
System.out.println("This my second out put "+x==null?y:z);
}
My output is:
20
20
But I'm expecting this:
This my first out put 10
This my second out put 20
Could someone explain me why I'm getting "20" as output for both println calls?
System.out.println("This my first out put "+x==null?y:z);
will be executed like
("This my first out put "+x)==null?y:z
which is never going to be true. So, it will display z
value.
For example:
int x=10;
int y=20;
System.out.println(" "+x+y); //display 1020
System.out.println(x+y+" "); //display 30
For above scenario, operation performed left to right.
As, you said, you are expecting this:
This my first output 10
For this, you need little change in your code. Try this
System.out.println("This my first output " + ((x == null) ? y : z));
Try
System.out.println("This my first out put "+ (x==null?y:z));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With