tres: Wertzuweisung mit Ausdruck

Hi,
In Java gibt es die Möglichkeit, Werte über einen Ausdruck zuzweisen, leider ist mir entfallen wie dieser genannt wird...
Syntax kann in etwa so aussehen:
String test == null ? null : "test";
kann mir jemand sagen wie diese Form genannt wird und mir etwa noch gleich mein beispiel erläutern? :)

Vielen Dank

  1. Hi,

    den Namen habe ich gerade nicht parat, aber im Prinzip ist das ganze nichts anderes als eine kurz if-then-else-Anweisung. In deine Syntax hat sich allerdings noch der ein oder andere Fehler eingeschlichen:
    String meinString = (if_condition) ? then-Zuweisung : else-Zuweisung
    zu lesen als: Wenn if_condition zutrifft, dann weise meinString den Wert then-Zuweisung zu, ansonsten gib ihm den Wert else-Zuweisung.
    Beispiel:
    bool indikator = true;
    String indText = (indikator) ? "Wahr" : "Falsch";

    -> indText erhält eine textuelle Beschreibung von indikator.

    MfG
    Rouven

    --
    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
    1. Hi,

      Hallo

      Beispiel:
      bool indikator = true;
      String indText = (indikator) ? "Wahr" : "Falsch";

      Ok danke, deine Beschreibun hat mir sehr weitergeholfen
      wenn jetzt noch jemand den namen parat hat, immer her damit.

      greez tres

  2. hi,

    String test == null ? null : "test";
    kann mir jemand sagen wie diese Form genannt wird

    Trinitätsoperator.

    und mir etwa noch gleich mein beispiel erläutern? :)

    Das Beispiel ergibt wenig Sinn.

    IdR. sollte das so aussehen:

    Variable = Ausdruck1 ? Ausdruck2 : Ausdruck3

    Es wird geprüft, ob Ausdruck1 "wahr" (true) ergibt.
    Wenn ja, wird Variable der Wert von Ausdruck2 zugewiesen,
    wenn nein der von Ausdruck3.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Trinitätsoperator.

      Hm ich hatte da einen ausdruck ohne fremdwörter im hinterkopf
      bzw gibts auch einen englischen begriff dafür?

      Variable = Ausdruck1 ? Ausdruck2 : Ausdruck3

      Es wird geprüft, ob Ausdruck1 "wahr" (true) ergibt.
      Wenn ja, wird Variable der Wert von Ausdruck2 zugewiesen,
      wenn nein der von Ausdruck3.

      Ok Vielen Dank
      gruss tres

  3. Hallo tres,

    kann mir jemand sagen wie diese Form genannt wird und mir etwa noch gleich mein beispiel erläutern? :)

    Im Englischen wird der Operator oft »ternary operator« genannt, ob es einen deutschen Begriff dafür gibt, weiß ich nicht.

    Dieser Operator hat die Form

    Bedingung ? Wert_1 : Wert_2

    Wenn die Bedingung wahr (true) ist, wird Wert_1 ansonsten Wert_2 zurückgegeben. Ein Beispiel in Java wäre:

    blubb = 5;  
    test = (blubb >= 5) ? "foo" : "bar";  
    System.out.println(test);  
    test = (blubb < 5) ? "foo" : "bar";  
    System.out.println(test);
    

    Die Ausgabe wäre dann:
        foo
        bar

    Schöne Grüße,

    Johannes

    --
    ie:% fl:( br:< va:| ls:[ fo:) rl:) n4:? ss:| de:] js:| ch:} sh:) mo:| zu:)
    1. Im Englischen wird der Operator oft »ternary operator« genannt, ob es einen deutschen Begriff dafür gibt, weiß ich nicht.

      ok damit wäre alles klar, vielen dank

      viele grüsse tres

  4. Hallo,

    kann mir jemand sagen wie diese Form genannt wird

    Einen richtigen Namen hat das Konstrukt nicht. Es wird manchmal Fragezeichenoperator
    genannt. Gelegentlich sieht man es als Ternär-Operator beschrieben. Bei Wikipedia
    findet sich gar kein Name, sondern nur der Hinweis, daß es sich um einen ternären
    Operator handelt.

    Was anderes...
    Die eMail-Adresse test@test.de gehört nicht dir, sondern Stiftung Warentest.
    Bitte unterlasse es, diese _irgendwo_ anzugeben. Lass das Feld einfach leer.

    Gruß
    Slyh

  5. Hi,

    kann mir jemand sagen wie diese Form genannt wird

    zusätzlich zum bereits Gesagten kenne ich noch den Namen "Bedingungsoperator".

    und mir etwa noch gleich mein beispiel erläutern? :)

    Dein Beispiel erzeugt einen Fehler ;-) weil 'String null;' und 'String "test";' keine gültigen Java-Codes sind. Der Operator hat einen Rückgabewert (im Grunde ein wirkliches 'return'), welches abhängig von der linken Bedingung dem mittleren bzw. rechten Wert entspricht.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes