Java Conditional / Ternary Operator - Verständnis?!

BrainLight

Mitglied
Hallo liebe Gemeinde.

Der Ternary Operator in Java stellt in vielen Meinungen ein "vereinfachtes" if-then-else-Konstrukt dar. Ich finde Ihn allerdings eher verwirrend als einfach :)

Dieses Beispiel ist ja wirklich relativ einfach:
Java:
int value1 = 1;
int value2 = 2;
int result;
boolean someCondition = true;
result = someCondition ? value1 : value2;
System.out.println(result);

Aber wie lässt sich der folgende Code als if-then-else lesen?
Was machen diese Pipes dort drin - logisches OR oder was soll das sein?
Alle Variablen sind vom Datentyp int innerhalb einer For-Schleife mit der Zählvariable i

Java:
int count = 0;
count = i == 0 ? count | START: count;
count = (i + 1) * SIZE > array.length ? count | END : count;

Ich würde mich freuen, wenn mir jemand diese Logik "enteinfacht" :)

MfG
BL
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

das | steht für eine binäre ODER-Verknüpfung. Umgeschrieben auf if:

Java:
int count = 0;
if (i == 0) {
  count = count | START;
}
if ((i + 1) * SIZE > array.length) {
  count = count | END;
}
Die else-Zweige hab ich weggelassen, da diese sowieso keine Auswirkung hätten (count = count;). Ein schönes Beispiel, wie man den ternären Operator missbrauchen kann…

Grüße,
Matthias
 
Zurück