Einfache Frage zu Java (if und else)

    • VTechMS
      VTechMS
      Bronze
      Dabei seit: 04.10.2006 Beiträge: 1.492
      ...
      if(Eingabe>Vergleichswert)
      System.out.println("Der Bestellwert betraegt:" +Eingabe);
      else
      System.out.println("Der Bestellwert mit Porto betraegt" +PlusPorto);
      ...
      also so ^^ funktionierts.
      ----------------------------------------------------------------------------
      Kann ichs aber auch irgendwie so schreiben?
      Z.B. durch setzen von Klammern oder wie auch immer:

      ...
      if(Eingabe>Vergleichswert)
      System.out.print("Der Bestellwert betraegt:");
      System.out.println(Eingabe);
      else
      System.out.println("Der Bestellwert mit Porto betraegt" +PlusPorto);
      ...
      also so^^ bekomme ich den Fehler 'else' without 'if'
  • 14 Antworten
    • Nerrik
      Nerrik
      Bronze
      Dabei seit: 11.09.2006 Beiträge: 622
      Original von VTechMS
      ...
      if(Eingabe>Vergleichswert)
      System.out.println("Der Bestellwert betraegt:" +Eingabe);
      else
      System.out.println("Der Bestellwert mit Porto betraegt" +PlusPorto);
      ...
      also so ^^ funktionierts.
      ----------------------------------------------------------------------------
      Kann ichs aber auch irgendwie so schreiben?
      Z.B. durch setzen von Klammern oder wie auch immer:

      ...
      if(Eingabe>Vergleichswert)
      System.out.print("Der Bestellwert betraegt:");
      System.out.println(Eingabe);
      else
      System.out.println("Der Bestellwert mit Porto betraegt" +PlusPorto);
      ...
      also so^^ bekomme ich den Fehler 'else' without 'if'


      if(Eingabe>Vergleichswert)
      {
      System.out.print("Der Bestellwert betraegt:");
      System.out.println(Eingabe);
      }
      else
      {
      System.out.println("Der Bestellwert mit Porto betraegt" +PlusPorto);
      }



      wenn du es ohne klammern machst, ist das semikolon immer das ende der if anweisung...daher der fehler.
    • Buschm4nn
      Buschm4nn
      Bronze
      Dabei seit: 02.10.2008 Beiträge: 4.500
      Bei if (und allen anderen Schleifen und Abfragen) ohne Klammer ist nur genau eine Zeile danach in der Abfrage (oder Schleife). Alles was darauf folgt, ist schon ausserhalb. Deswegen wird dein else nach zwei Anweisungen nicht mehr zum if gewertet.

      Du kannst aber diese 2 System.out auch in eine Anweisung schreiben (genau wie im else Zweig)... oder du benutzt einfach Klammern
    • VTechMS
      VTechMS
      Bronze
      Dabei seit: 04.10.2006 Beiträge: 1.492
      if(Eingabe!=1)
      System.out.print("Die Zahl ist die eins");
      else
      System.out.print("Die Zahl ist ungleich eins");

      Kann ich bei der if Funktion auch ein ist gleich verwenden?

      Also wenn ich die Zahl eins eingebe, soll "Die Zahl ist die eins" ausgegeben werden, ansonsten "Die Zahl ist ungleich eins".

      anscheindend ist != das Zeichen für ungleich und mit nur = funktioniert es nicht
    • Nerrik
      Nerrik
      Bronze
      Dabei seit: 11.09.2006 Beiträge: 622
      Original von Buschm4nn
      Bei if (und allen anderen Schleifen und Abfragen) ohne Klammer ist nur genau eine Zeile danach in der Abfrage (oder Schleife). Alles was darauf folgt, ist schon ausserhalb. Deswegen wird dein else nach zwei Anweisungen nicht mehr zum if gewertet.

      Du kannst aber diese 2 System.out auch in eine Anweisung schreiben (genau wie im else Zweig)... oder du benutzt einfach Klammern
      Das ist falsch.

      z.b.:

      if(xyz)
      if(zyx)
      print;

      es ist nicht die Zeile sondern das Semikolon bzw die Anweisung...
    • Nerrik
      Nerrik
      Bronze
      Dabei seit: 11.09.2006 Beiträge: 622
      Original von VTechMS
      if(Eingabe!=1)
      System.out.print("Die Zahl ist die eins");
      else
      System.out.print("Die Zahl ist ungleich eins");

      Kann ich bei der if Funktion auch ein ist gleich verwenden?

      Also wenn ich die Zahl eins eingebe, soll "Die Zahl ist die eins" ausgegeben werden, ansonsten "Die Zahl ist ungleich eins".

      anscheindend ist != das Zeichen für ungleich und mit nur = funktioniert es nicht
      = ist ja auch eine zuweisung.

      wenn du if (a=1) machst, wird nur geprüft ob die zuweisung geklappt hatt
      if (a==1) ist hier richtig. hier wird geprüft ;)
    • Jucrayne
      Jucrayne
      Bronze
      Dabei seit: 22.03.2008 Beiträge: 158
      du must anstelle von if a=1 if a==1 machen damit es ein boolescher Ausdruck und keine Zuweisung wird.
      Wenn du mehrere Befehle bei einer If Anweisung machen willst schreib :

      if ( boolescher Ausdruck )
      {
      Anweisung1;
      Anweisung2;
      }
      else
      {
      ElseAnweisung1;
      ElseAnweisung2;
      ElseAnweisung3;
      }
    • VTechMS
      VTechMS
      Bronze
      Dabei seit: 04.10.2006 Beiträge: 1.492
      str=input.readLine();
      Eingabe=Integer.parseInt(str);

      so wandle ich den String in Integer um, also in eine Ganzzahl. Aber wie müsste das lauten, wenn ich das mit doulbe machen möchte. Also ich möchte auch Kommazahlen eingeben können.
    • PowerGamer
      PowerGamer
      Bronze
      Dabei seit: 11.12.2007 Beiträge: 5.686
      if you have a serious question ... go elsewhere :)
    • fightorflight
      fightorflight
      Bronze
      Dabei seit: 15.03.2007 Beiträge: 233
      Double.parseDouble(str);
    • Lifeisabug
      Lifeisabug
      Bronze
      Dabei seit: 30.12.2007 Beiträge: 1.629
      Original von VTechMS
      str=input.readLine();
      Eingabe=Integer.parseInt(str);

      so wandle ich den String in Integer um, also in eine Ganzzahl. Aber wie müsste das lauten, wenn ich das mit doulbe machen möchte. Also ich möchte auch Kommazahlen eingeben können.
      Gibt fuer die numerischen primitiven Datentypen Wrapperklassen mit einer entsprechenden parse-Methode. Integer kennst du ja bereits. Es gibt auch Double.
    • VTechMS
      VTechMS
      Bronze
      Dabei seit: 04.10.2006 Beiträge: 1.492
      if(Eingabe>=0 && Eingabe<4)
      && steht für und.

      Aber was steht für oder?

      if(Eingabe<=0 "oder" Eingabe==4)
    • ktec
      ktec
      Bronze
      Dabei seit: 17.01.2005 Beiträge: 2.781
      ||
    • elbarto132
      elbarto132
      Bronze
      Dabei seit: 24.03.2008 Beiträge: 4.622
      kannst auch einfach mal nach "java if else" oder so ähnlich googlen, dort ist das alles erklärt ;)
    • goofler
      goofler
      Bronze
      Dabei seit: 28.09.2007 Beiträge: 564
      Java Insel ist empfehlenswert für Einsteiger:
      http://openbook.galileocomputing.de/javainsel8/