while tipos sentencia que programacion for else ejemplos condicionales java if-statement ternary-operator short

sentencia - tipos de for en java



Forma abreviada para la sentencia Java If (14)

Los ? : operador en Java

En Java, puedes escribir:

if (a > b) { max = a; } else { max = b; }

Establecer una sola variable en uno de dos estados en función de una sola condición es un uso tan común de if-else que se ha ideado un atajo para él, el operador condicional,?:. Usando el operador condicional puede reescribir el ejemplo anterior en una sola línea como esta:

max = (a > b) ? a : b;

(a> b)? a: b; es una expresión que devuelve uno de dos valores, a o b. La condición, (a> b), se prueba. Si es verdadero, se devuelve el primer valor, a. Si es falso, se devuelve el segundo valor, b. El valor que se devuelve depende de la prueba condicional, a> b. La condición puede ser cualquier expresión que devuelva un valor booleano.

Sé que hay una forma de escribir java if statement en forma abreviada

if (city.getName() != null) { name = city.getName(); } else { name="N/A"; }

¿Alguien sabe cómo escribir una forma corta para más de 5 líneas en una línea ...


Puede eliminar corchetes y saltos de línea .

Sintaxis:

if (city.getName() != null) name = city.getName(); else name = "N/A";

Puedes usar ?: Operadores en java.

Sintaxis:

Variable = Condition ? Block1 : Block2;

Entonces en tu código puedes hacer esto:

name = city.getName() == null ? "N/A" : city.getName();

Asignar resultado de condición para booleano

boolean hasName = city.getName() != null;

EXTRA: por curiosidad

En algunos idiomas basados ​​en JAVA como Groovy , puede usar esta sintaxis:

name = city.getName() ?: "N/A";

Puedes hacer esto en Groovy porque si pides esta condición:

if (city.getName()) { //returns true if city.getName() != null } else { //returns false if city.getName() == null }

Entonces, ¿el operador ?: Asigne el valor devuelto por la condición. En este caso, el valor de city.getName() si no es null .


La forma de hacerlo es con el operador ternario:

name = city.getName() == null ? city.getName() : "N/A"

Sin embargo, creo que tiene un error tipográfico en su código anterior, y quiere decir:

if (city.getName() != null) ...


Para evitar llamar .getName() dos veces, usaría

name = city.getName(); if (name == null) name = "N/A";


Puede usar un operador ternario en java.

Sintaxis:

Condition ? Block 1 : Block 2

Entonces en tu código puedes hacer esto,

name = ((city.getName() == null) ? "N/A" : city.getName());

Para obtener más información, puede consultar this recurso.


Puedes escribir if, else if, else declaraciones en forma corta. Por ejemplo:

Boolean isCapital = city.isCapital(); //Object Boolean (not boolean) String isCapitalName = isCapital == null ? "" : isCapital ? "Capital" : "City";

Esta es una forma corta de:

Boolean isCapital = city.isCapital(); String isCapitalName; if(isCapital == null) { isCapitalName = ""; } else if(isCapital) { isCapitalName = "Capital"; } else { isCapitalName = "City"; }


Siempre estoy olvidando cómo usar el operador ?: Ternario . Esta respuesta suplementaria es un recordatorio rápido. Es una abreviatura de if-then-else .

myVariable = (testCondition) ? someValue : anotherValue;

dónde

  • () contiene el if
  • ? significa then
  • : significa else

Es lo mismo que

if (testCondition) { myVariable = someValue; } else { myVariable = anotherValue; }


Use el operador ternario:

name = ((city.getName() == null) ? "N/A" : city.getName());

Creo que tienes las condiciones al revés: si es nulo, quieres que el valor sea "N / A".

¿Qué pasa si la ciudad es nula? Tu código * golpea la cama en ese caso. Agregaría otro cheque:

name = ((city == null) || (city.getName() == null) ? "N/A" : city.getName());


Use org.apache.commons.lang3.StringUtils:

name = StringUtils.defaultString(city.getName(), "N/A");


en java 8:

name = Optional.ofNullable(city.getName()).orElse("N/A")


Simple y claro:

String manType = hasMoney() ? "rich" : "poor";

Versión larga:

String manType; if (hasMoney()) { manType = "rich"; } else { manType = "poor"; }

o cómo lo uso para que quede claro para otros lectores de código:

String manType = "poor"; if (hasMoney()) manType = "rich";


name = ( (city.getName() == null)? "N/A" : city.getName() );

en primer lugar, se (city.getName() == null) la condición (city.getName() == null) . En caso afirmativo, se asigna "N/A" a nombre o simplemente name="N/A" o, de lo contrario, el valor de city.getName() se asigna al nombre, es decir, name=city.getName() .

Cosas a tener en cuenta aquí:

  1. la condición está entre paréntesis seguida de un signo de interrogación. Es por eso que escribo (city.getName() == null)? . Aquí el signo de interrogación es justo después de la condición. ¡Fácil de ver / leer / adivinar incluso!
  2. El valor a la izquierda de dos puntos (:) y el valor de dos puntos a la izquierda de dos puntos se asignan cuando la condición es verdadera; de lo contrario, se asigna el valor de dos puntos a la variable.

aquí hay una referencia: http://www.cafeaulait.org/course/week2/43.html


name = (city.getName() != null) ? city.getName() : "N/A";


name = city.getName()!=null?city.getName():"N/A"