Ich habe derzeit ein Problem beim Lesen dieses Codes. Weiß jemand was es tut?

if (c == a)
    return q[a] ? 1 : 0;
1
Zero 18 Aug. 2020 im 10:01

5 Antworten

Beste Antwort

Die Aussage

return q[a] ? 1 : 0;

Ist äquivalent zu

// Exact type of "zero" depends on the type of q[a]
if (q[a] != 0) 
    return 1;
else
    return 0;

Oder

return !!q[a];
0
Some programmer dude 18 Aug. 2020 im 07:26

Der darin enthaltene Code wird in der Reihenfolge des übereinstimmenden Operators ausgewertet.

Also wird zuerst a + 1 ausgewertet und dann b == (a + 1).

Wenn b gleich (a + 1) ist, wird, wenn q[a] true 1 ist, zurückgegeben, andernfalls 0.

Siehe C # -Operatoren und -Ausdrücke oder Vorrang und Reihenfolge der Bewertung (Abhängig von der Sprache möchten Sie "Sprachname" + Operator-Priorität googeln).

0
thatguy 18 Aug. 2020 im 10:53

Wenn c==a und q[a] = true, geben Sie 1 zurück, andernfalls geben Sie 0 zurück.

-1
Mohammed 20 Aug. 2020 im 08:37

Ternäre Operatoren sind Operatoren, die an drei Operanden arbeiten. Die Grundstruktur eines ternären Operators ist wie folgt:

Conditional ? Action if true : Action if false

Beispielsweise:

a = 1;

return (a==3) ? true : false

Dies wird false zurückgeben.

-1
Maurice Kasomwung 18 Aug. 2020 im 07:05

Wenn q [a] nicht Null ist, wird 1 zurückgegeben, andernfalls 0.

0
Fredrik 18 Aug. 2020 im 07:27