Java una línea si no funciona para impresiones [duplicado]
Esta pregunta ya tiene una respuesta aquí:
Java Ternary sin Asignación 4 respuestasSi escribes algo como:
boolean condition;
(...)
String out = condition ? "true" : "false";
System.out.println(out);
Funciona. Pero si escribes
condition ? System.out.println("true") : System.out.println("false");
aparece un error "no es una declaración". La forma "correcta" es escribir (el uso de llaves o "estar o no estar en una línea" está fuera del alcance de la pregunta):
if (condition)
System.out.println("true");
else
System.out.println("false");
¿Por qué? La una líneaif
s siempre debe devolver un valor?
EDITAR: A todos señalando que
condition ? System.out.println("true") : System.out.println("false");
no es una sintaxis correcta, sí, obtuve esa parte. No estoy pidiendo soluciones (aunque el
System.out.println(condition ? "true" : "false");
es bueno.
@ Andrew Tobilko, ¿dónde está dicho eso?ESE es lo que me interesa.
EDIT2: La respuesta aceptada proporciona exactamente lo que quería. Gracias