Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo, mein Code funktioniert, allerdings nur, solange ich im if-else-Block keine System.out.println() Anweisung gebe. Genau so, wie ich es gemacht habe, habe ich es in einem Beispiel-Code im Internet gesehen, aber es funktioniert nicht. Wie realisiert man eine System.out.println() Anweisung innerhalb eines if-else Blocks? Danke für Info.
Java:
public class Ulam
{
public static void main (String[] args)
{
int zahl;
zahl = 123;
while(zahl > 1)
{
while(zahl%2 == 0)
{
zahl = zahl/2;
}
if(zahl != 1)
{
System.out.println(zahl);
}
zahl = zahl * 3 + 1;
else
System.out.println(zahl);
}
}
}
Die korrekte Syntax für if - else sieht folgendermassen aus:
Code:
if(<bedingung>){
<code>
}
else{
<code>
}
(Wobei die geschweiften Klammern weggelassen werden können.)
Bei deinem Beispiel wird diese Syntax wegen dem zahl = zahl * 3 + 1 verletzt (da zwischen } und else).
Gehört diese Zeile zum if oder zum else oder gar nicht zu der Bedingung? je nachdem müsstest du den Code an die korrekte Stelle verschieben.
Vielen Dank, CptSocket. Ich komme da aber trotzdem nicht weiter. Nach dem if habe ich jetzt Code eingefügt, obwohl es sehr unschön ist, da zahl=zahl hinzuschreiben, nur damit da Code steht. Nach dem else genauso. Es ändert aber nichts daran, daß es insgesamt nicht funktioniert. Die Fehlermeldung bleibt. Kannst Du es bitte mal so hinschreiben, daß es funktioniert? Dann habe ich es im Kasten. Danke.
So würde es funktionieren, jedoch wissen wir nicht in welchen Zweig du was haben willst. Wie Socket bereits geschrieben hat, muss nach der geschweiften Klammer die den if-Zweig abschließt sofort der else-Zweig folgen & nicht noch ein Codestück dazwischen!
Java:
public class Ulam
{
public static void main (String[] args)
{
int zahl;
zahl = 123;
while(zahl > 1)
{
while(zahl%2 == 0)
{
zahl = zahl/2;
}
if(zahl != 1)
{
System.out.println(zahl);
zahl = zahl * 3 + 1;
}
else System.out.println(zahl);
}
}
}
Super, fLooojava, Danke!! Jetzt weiß ich, daß dann zwischen if und else der gesamte Code innerhalb der Klammern stehen muß und nicht nur die System.out.println() Anweisung.