Java: bool + int

Oct 18 2020

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

3 ArvindKumarAvinash Oct 18 2020 at 17:02

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
Polygnome Oct 18 2020 at 17:06

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.