Java: bool + int
¿Hay alguna manera de hacer que Java funcione con la suma y evaluación de números enteros / booleanos? Más específicamente, C ++ tiene una característica apropiada que acorta muchas declaraciones if.
for (int i = 0; i < n; ++i)
cout << i;
Es equivalente a
while (n--)
cout << n;
O, en lugar de:
for (int i = 0; i < n; ++i)
if (x == y)
count++;
Uno puede tener
for (int i = 0; i < n; ++i)
count += (x==y);
¿Hay alguna forma de hacer algo similar a eso en Java?
Respuestas
Puede usar el operador ternario en Java para el mismo efecto.
public class Main {
public static void main(String[] args) {
int x = 5, y = 10, count = 0;
count += x == y ? 1 : 0;
System.out.println(count);
x = 10;
count += x == y ? 1 : 0;
System.out.println(count);
}
}
Salida:
0
1
El código se lee con más frecuencia que se escribe. Si bien puede usar el operador ternario, la semántica de esto se reduce a solo aumentar countsi xes igualy . Entonces, la forma más legible de escribir esto sería usar:
for (int i = 0; i < n; ++i)
if (x == y) count++;
Hacer trucos como count += (x==y)en otros idiomas en mi humilde opinión ya es una mala práctica, ya que ofusca la lógica. Optimice para leer, no escribir.