println не печатает ожидаемое значение
Это мой код:
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);
}
Мой вывод:
20
20
Но я ожидаю этого:
This my first out put 10
This my second out put 20
Может кто-нибудь объяснить мне, почему я получаю "20" в качестве вывода для обоих вызовов println?
4 ответа
Решение
System.out.println("This my first out put "+x==null?y:z);
будет выполнен как
("This my first out put "+x)==null?y:z
что никогда не будет правдой. Так будет отображаться z
значение.
Например:
int x=10;
int y=20;
System.out.println(" "+x+y); //display 1020
System.out.println(x+y+" "); //display 30
Для приведенного выше сценария операция выполняется слева направо.
Как вы сказали, вы ожидаете этого:
This my first output 10
Для этого вам нужно немного изменить свой код. Попробуй это
System.out.println("This my first output " + ((x == null) ? y : z));
Пытаться
System.out.println("This my first out put "+ (x==null?y:z));
Используйте следующий код, чтобы решить вашу проблему: Проблема в том, что
System.out.println(("This my first out put "+x==null?y:z);
Как
System.out.println(("This my first out put "+x)==null?y:z);
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));
}
Вам нужно попробовать:
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));