Java: bool + int
Gibt es eine Möglichkeit, Java mit boolescher / ganzzahliger Addition und Auswertung zum Laufen zu bringen? Insbesondere verfügt C ++ über eine geeignete Funktion, die viele if-Anweisungen verkürzt.
for (int i = 0; i < n; ++i)
cout << i;
Ist äquivalent zu
while (n--)
cout << n;
Oder statt:
for (int i = 0; i < n; ++i)
if (x == y)
count++;
Man kann haben
for (int i = 0; i < n; ++i)
count += (x==y);
Gibt es eine Möglichkeit, etwas Ähnliches wie in Java zu tun?
Antworten
Sie können den ternären Operator in Java für den gleichen Effekt verwenden.
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);
}
}
Ausgabe:
0
1
Code wird häufiger gelesen als geschrieben. Während Sie den ternären Operator verwenden können, läuft die Semantik davon darauf hinaus, nur zuzunehmen, countwenn sie xgleich isty . Der am besten lesbare Weg, dies zu schreiben, wäre:
for (int i = 0; i < n; ++i)
if (x == y) count++;
Tricks wie count += (x==y)in anderen Sprachen zu machen, ist imho schon eine schlechte Praxis, da es die Logik verschleiert. Optimieren Sie zum Lesen, nicht zum Schreiben.