Fragezeichen im Code

freakdran

Mitglied
Hallo,

ich habe nun schon in mehreren Codes die ich im Internet gesucht hatte eine (für mich) merkwürdige Konstruktion gefunden.

Als Beispiel
Java:
private void(int low, int high, boolean test) {

	int k=test? low: high;

...
}

Was bedeutet das k=test? low: high ?

k = int und test = boolean, was soll also der Vergleich und warum das "?" ? Ohne funktioniert es nicht und es wird ein "?" er wartet, was bringt also das "?"?
Und dann noch "low:high". Ist das einfach nur von bis oder irgendetwas anderes?

Danke schonmal im Vorraus für die Antworten
 
Die Konstruktion funktioniert so:

alles vor dem Fragezeichen ist eine if Abfrage, nach dem Fragezeichen kommt der True Fall und nach dem Doppelpunkt der False Fall
das bedeutet dem "int k" wird nicht "test" zugewiesen sondern entweder der True Fall oder der False Fall, jenachdem ob "test" eben true oder false ist.

Eigentlich schaut es oben so aus:

Java:
int a = (b<c) ? a : c
anstatt:

Java:
int a;
if(b<c) {
a = a;
}else {
a = c;
}

int k=test
 
Zuletzt bearbeitet:
Also bezogen auf das Beispiel vorher:
Java:
int k;

if(test)
	k = low;
else
	k = high;
?
Und schonmal ein dickes Danke 😉
 
Zuletzt bearbeitet:
Genau.
Habe meinen Text oben nochmal editiert zur Erklärung.

Es ist einfach eine kürzere If Abfrage.

Nehme sie ehrlich gesagt selbst nie her.

Finde es nicht übersichtlicher, aber da kann man sich streiten
 

Zurück
Oben