Zum Forum springen
Einfache Frage zu J...
 
Benachrichtigungen
Alles löschen

[Geschlossen] Einfache Frage zu Java (if und else)

15 Beiträge
10 Benutzer
0 Reactions
1,109 Ansichten
VTechMS
Beigetreten: 04.10.2006

...
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
Beigetreten: 12.09.2006

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.


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
Beigetreten: 04.10.2006

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
Beigetreten: 12.09.2006

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
Beigetreten: 12.09.2006

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 ;)


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
Beigetreten: 04.10.2006

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
Beigetreten: 11.12.2007

if you have a serious question ... go elsewhere :)


fightorflight
Beigetreten: 15.03.2007

Double.parseDouble(str);


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
Beigetreten: 04.10.2006

if(Eingabe>=0 && Eingabe<4)
&& steht für und.

Aber was steht für oder?

if(Eingabe<=0 "oder" Eingabe==4)


ktec
Beigetreten: 17.01.2005

kannst auch einfach mal nach "java if else" oder so ähnlich googlen, dort ist das alles erklärt ;)


Java Insel ist empfehlenswert für Einsteiger:
http://openbook.galileocomputing.de/javainsel8/