?: Operator

C.B.

Aktives Mitglied
Hallo,

kann mir wer sagen was der Operator ?: bewirkt?

Anbei ein Code in dem der Operator in der Methode gaius vorkommt. Was bewirkt er hier? Ich hab gelesener überprüft ob etwas true oder false ist.
Hier kommt beim ersten durchlauf true heraus aber wieso ist 5==-5? Anschließend wird dieser Ausdruck als Zahl an die Methode char e übergeben.

Vielen Dank



Java:
    public static String gaius(String s, boolean enc) {
        String result ="";
        char l='a';
        for (int i=0; i<s.length();++i) {
            if(s.charAt(i)>=l && s.charAt(i)<=l+25)
                result+=e(s.charAt(i), enc?5:-5);
            }
        return result;
    }
        

        

    private static char e(char x, int y) {
        x+=y;
        if(y>0 && x>'z') x-='z'-'a'+1;
        if(y<0 && x<'a') x+='z'-'a'+1;
        return x;
    }







private static char e(char x, int y) {
x+=y;
if(y>0 && x>'z') x-='z'-'a'+1;
if(y<0 && x<'a') x+='z'-'a'+1;
return x;
}[/CODE]
 

X5-599

Top Contributor
Damit kann eine einfache if/else Abfrage gemacht werden. Je nachdem ob der Boolsche Ausdruck vor dem "?" True oder False ist wird der Wert Links vom ":" genommen, andernfalls Rechts davon.

In deinem Beispiel heißt das: Wenn die Boolsche Variable enc True ist wird 5 als zweiter Parameter an die Methode e(int, int) übergeben. Wenn sie False ist, wird -5 übergeben.
 

Mart

Top Contributor
unter ternary operator findest du auch etwas dazu

wo ih ihn meistens bneutzte ist bei return statements wenn beide if statements nur eine kurze zeile als anweisung hat zb

Java:
if(xyz )
    return false;
else
    return true;

=>

return xyz ? true : false;
 

kneitzel

Top Contributor
unter ternary operator findest du auch etwas dazu

wo ih ihn meistens bneutzte ist bei return statements wenn beide if statements nur eine kurze zeile als anweisung hat zb

Java:
if(xyz )
    return false;
else
    return true;

=>

return xyz ? true : false;
Das Beispiel ist so nicht wirklich gut und ich würde Dir unterstellen, dass Du da auch einfach ein return xyz; schreiben wirst.

Aber wenn Du true / false mit anderen Werten ersetzt, dann wird es natürlich verständlich.
 

Mart

Top Contributor
Das Beispiel ist so nicht wirklich gut und ich würde Dir unterstellen, dass Du da auch einfach ein return xyz; schreiben wirst.

Aber wenn Du true / false mit anderen Werten ersetzt, dann wird es natürlich verständlich.
mnja das beispiel war blöd gewählt xD

es würde mehr so sinn machen ohne die komplexität zu übertreiben
Java:
return xyz ? 1 : 0;
 

C.B.

Aktives Mitglied
Vielen Dank für die Infos. Selbst würde ich, dass nicht wählen. Habe es in einer Programmanalyse einer Klausur gesehen und man sollte den Code auswerten. Ich weiß aber nicht was es bedeutet. Noch eine Frage zu meinem Code, wann evaluiert "enc" zu true? Eine weitere Methode namens enc ist nicht genannt im Text.

Vielen Dank
 

kneitzel

Top Contributor
enc ist doch ein Parameter der Methode:
public static String gaius(String s, boolean enc)
Sprich: Da muss ein Wert (true oder false) übergeben werden.
 

Mart

Top Contributor
Nur als ergänzende Info: Im true / false Beispiel hast du auch einmal true und false vertauscht. Im Ur-Ausdruck kommt !xyz heraus, im Beispiel mit dem ?-Operator kommt xyz heraus.
ja nur nach genauerem nachdenken war das ur beispiel relativ nutzlos, daher hab ich nichts mehr daran geändert

das neue beispiel könnte man ja mit int als rückgabe bauen oder sonst irgendwas machen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Java operator % Java Basics - Anfänger-Themen 3
KogoroMori21 Erklärung zum Ternären Operator Java Basics - Anfänger-Themen 4
B Modulo-Operator anhand eines Beispieles erklären Java Basics - Anfänger-Themen 7
C Ternärer Operator mit Strings Java Basics - Anfänger-Themen 3
L Modulus Operator Java Basics - Anfänger-Themen 3
A Zuweisungen und -- operator; Java Basics - Anfänger-Themen 2
H << Operator Java Basics - Anfänger-Themen 7
F RegEx "+" nur als Zeichen, nicht als Operator oder Sonstiges Java Basics - Anfänger-Themen 2
H Operatoren Der bedingte Operator ? : ; Java Basics - Anfänger-Themen 2
J new-Operator Java Basics - Anfänger-Themen 6
H this operator - was ist das? Java Basics - Anfänger-Themen 2
R Operatoren Bad operand types for binary operator Java Basics - Anfänger-Themen 4
O Bedingter Operator eine Frage! Java Basics - Anfänger-Themen 10
O Erste Schritte x*y*z mit Shift Operator moeglich? Java Basics - Anfänger-Themen 15
L Operatoren error: bad operand types for binary operator && Java Basics - Anfänger-Themen 8
E Methoden in new-Operator Methode in geschweifter Klammer Java Basics - Anfänger-Themen 3
I bad operand types for binary operator > Java Basics - Anfänger-Themen 5
D Conditional Operator ?: Java Basics - Anfänger-Themen 3
L Operatoren Übungsklausuraufgabe, unbekannter Operator Java Basics - Anfänger-Themen 13
H Operatoren Fehler bad operand types for binary operator Java Basics - Anfänger-Themen 7
snipesss Operator "-" is undefined Java Basics - Anfänger-Themen 1
F Operatoren If mit variabelem Operator Java Basics - Anfänger-Themen 2
J instanceof Operator Java Basics - Anfänger-Themen 3
K Operatoren The Operator * is undefined for the argument type(s) double, String Java Basics - Anfänger-Themen 4
J Operator * benutzen Java Basics - Anfänger-Themen 3
DeVolt Operatoren Frage zum new-Operator Java Basics - Anfänger-Themen 4
N Methoden Modulo Operator Java Basics - Anfänger-Themen 1
S Operatoren ! Operator Java Basics - Anfänger-Themen 4
O Operator undefined Java Basics - Anfänger-Themen 2
N this-Operator Java Basics - Anfänger-Themen 2
ubaro1 Operatoren Der Tide Operator und positive Ganzzahlen in Binär Java Basics - Anfänger-Themen 1
S Hashcode - Operator ^ Java Basics - Anfänger-Themen 11
M Shift Operator Java Basics - Anfänger-Themen 3
V XOR-Operator? Java Basics - Anfänger-Themen 5
K Zugriff einer Klasse auf eine andere Andere -> bad operand for binary operator Java Basics - Anfänger-Themen 5
J bad operand types for binary operator Java Basics - Anfänger-Themen 3
T Pixelmanipulation Sobel-Operator Java Basics - Anfänger-Themen 2
K Frage zu Class Operator Java Basics - Anfänger-Themen 2
L The operator && is undefined for the argument type(s) String, boolean Java Basics - Anfänger-Themen 8
C Operatoren | - Operator Java Basics - Anfänger-Themen 10
K .Class Operator unklar Java Basics - Anfänger-Themen 3
B Operator | Java Basics - Anfänger-Themen 11
R Compiler-Fehler Operator + nicht erlaubt? Java Basics - Anfänger-Themen 6
C Was tut der | Operator? Java Basics - Anfänger-Themen 8
K Polymorphie und instanceOf Operator Java Basics - Anfänger-Themen 6
S Objekt Erzeugung ohne new Operator Java Basics - Anfänger-Themen 6
C Logischer UND Operator funktioniert nicht richtig Java Basics - Anfänger-Themen 5
H Buch: Java lernen mit BlueJ Modulo-Operator Java Basics - Anfänger-Themen 16
K Conditional Operator Java Basics - Anfänger-Themen 16
A Was bedeutet der Operator *= ? Java Basics - Anfänger-Themen 2
A Operator in Java Java Basics - Anfänger-Themen 11
S Modulo Operator Java Basics - Anfänger-Themen 8
C Variablen Problem: variable operator might not have been initialized Java Basics - Anfänger-Themen 9
D : ? Operator -Verständnisproblem Java Basics - Anfänger-Themen 24
K OOP Wertebereich Ergebnis von % Operator Java Basics - Anfänger-Themen 8
L Frage zu Konstruktoren und dem this Operator Java Basics - Anfänger-Themen 16
R Ersatz für Modulo Operator Java Basics - Anfänger-Themen 8
W &-Operator in diesem Zusammenhang Java Basics - Anfänger-Themen 19
J Oder-Operator Tastenkürzel Java Basics - Anfänger-Themen 7
K Cast-Operator Java Basics - Anfänger-Themen 3
D Bit-Operator & Java Basics - Anfänger-Themen 5
Q mathematische Operationen als Methode und nicht Infix-Operator Java Basics - Anfänger-Themen 14
V Cast-Operator Java Basics - Anfänger-Themen 2
G super operator und incompatible types, simple fehler Java Basics - Anfänger-Themen 8
N Operator aus Array lesen Java Basics - Anfänger-Themen 2
G Für was braucht man den This-operator Java Basics - Anfänger-Themen 3
M Binärdarstellung in Java mit Shift-Operator + bitweises und Java Basics - Anfänger-Themen 2
W Seltsamer Operator int var = 1<< 23; Java Basics - Anfänger-Themen 4
P If Abfrage, Variablenvertauschung und UND Operator Java Basics - Anfänger-Themen 4
J Modulo-Operator rechnet falsch Java Basics - Anfänger-Themen 2
B + operator Java Basics - Anfänger-Themen 4
F Generische Methode - was bringt der Wildcard Operator? Java Basics - Anfänger-Themen 7
H Konditional Operator Java Basics - Anfänger-Themen 2
NightmareVirus new operator Java Basics - Anfänger-Themen 5
M %-Operator Java Basics - Anfänger-Themen 3
G string ohne '+' operator Java Basics - Anfänger-Themen 5
S Modulo-Operator Java Basics - Anfänger-Themen 5
S Operator ! auf char nicht anwendbar, was nun? Java Basics - Anfänger-Themen 7
T sobel-operator Java Basics - Anfänger-Themen 3
W %-Operator Java Basics - Anfänger-Themen 4
S Unterschied: ++a & a++ Operator? Java Basics - Anfänger-Themen 9
ven000m Operator += Java Basics - Anfänger-Themen 4
Student Probleme mit dem new-Operator Java Basics - Anfänger-Themen 14
G Operator-Überladung Java Basics - Anfänger-Themen 6
B Operator Java Basics - Anfänger-Themen 2
Z operator ++ Java Basics - Anfänger-Themen 3
N return-Operator Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben