Compiler meldet if without else

123michi19

Lt. Junior Grade
Registriert
Okt. 2014
Beiträge
324
Hi Leute,

ich sollte von der Hochschule aus ein Programm schreiben, dass 3 beliebige Zahlen der Größe nach sortiert ausgibt (Verschachtelte if-Anweisung als Thema)

Hier einmal mein Code:

Code:
/* Sort.java*/
public class Sort
{
	public static void main (String[]args)
	{
		int x = 1;
		int y = 3;
		int z = 2;

		if ((x>y) && (x>z))
		{
			if (y>z)
			{
			System.out.println (+x);
			System.out.println (+y);
			System.out.println (+z);
				if (y<z)
					{
					System.out.println (+x);
					System.out.println (+z);
					System.out.println (+y);
					}
			}
		}
		else
		{
				if ((y>x) && (y>z))
						{
						if (x>z)
							{
							System.out.println (+y);
							System.out.println (+x);
							System.out.println (+z);
							if (x<z)
								{
								System.out.println (+y);
								System.out.println (+z);
								System.out.println (+x);
								}
							}
						}
		}
		else
		{
				if ((z>y) && (z>x))
					{
					if (y>x)
						{
						System.out.println (+z);
						System.out.println (+y);
						System.out.println (+x);
						if (y<x)
							{
							System.out.println (+z);
							System.out.println (+x);
							System.out.println (+y);
							}
						}
					}

		}
	}
}

In Zeile 43 (die zweite else - Anweisung) bekomme ich vom Compiler die Fehlermeldung if without else. Ich finde jetzt keinen Fehler oder sehe auch nicht, dass eine Klammer fehlen würde. Vielleicht könnt ihr mir weiterhelfen

Vielen Dank :-)
 
Hi,

Zeile 10: IF
Zeile 25: Dazugehöriges ELSE
Zeile 43: Nochmal ein ELSE? Wie das? Was soll den noch für ein dritter Fall neben "true" oder "false" in Zeile 10 auftreten?

Abgesehen davon ist das hier kein Hausaufgabenforum! Hab den Thread mal gemeldet...

VG,
Mad
 
Zu einem If gehört nur ein ELSE! Das erste ELSE durch ein IF ELSE tauschen (mit Bedingung natürlich). Hat so ja auch Sprachenmäßig wenig Sinn.
Falls 3 dann so,
wenn nicht so,
wenn nicht so.
Da macht das auch keinen Sinn ...
 
Ich habe die Klammern nicht gezählt, wenn die Einrückungen stimmen hast du IF ELSE ELSE.
 
Madman1209 schrieb:
Hi,

Zeile 10: IF
Zeile 25: Dazugehöriges ELSE
Zeile 43: Nochmal ein ELSE? Wie das? Was soll den noch für ein dritter Fall neben "true" oder "false" in Zeile 10 auftreten?

Abgesehen davon ist das hier kein Hausaufgabenforum! Hab den Thread mal gemeldet...

VG,
Mad

Sorry, falls es als Hausaufgabe herüberkommt, ich habe das Programm ja selber schon geschrieben, nur meinen Fehler nicht gefunden.
Ergänzung ()

Vielen Dank für die Antworten :-)
 
lösch doch erstmal die ganzen unnötigen if's raus

zeile 17, 34, 52
 
Das Programm könnte stark vereinfacht werden indem man die Werte in ein Array packt, das sortiert und dann ausgibt. ;-)

Edit: Ja gut, Thema dann verfehlt, aber lesbarer wäre es in jedem Fall
 
Ich hätte die Aufgabe (bei Übungsziel = verschachtelte Verwendung von if und else) folgendermaßen gelöst:
(Die Ausgabe hab ich der Übersichtlichkeit halber mal gekürzt.)

Code:
if x>y
{
   if y>z { #Ausgabe xyz }
   else
   {
      if x>z { #Ausgabe xzy }
      else { #Ausgabe zxy }
   }
}
else
{
   if x>z { #Ausgabe yxz }
   else
   {
      if y>z { #Ausgabe yzx }
      else { #Ausgabe zyx }
   }
}
Da es um nen Lerneffekt geht, kannst du ja die beiden Ansätze mal vergleichen.

Als Erläuterung:
Bei meiner Lösung wird erst geschaut wie x und y zueinander stehen und anschließend das z davor, dazwischen oder dahinter einsortiert.
 
Zuletzt bearbeitet:
calav3ra_de schrieb:
Das Programm könnte stark vereinfacht werden indem man die Werte in ein Array packt, das sortiert und dann ausgibt. ;-)

Edit: Ja gut, Thema dann verfehlt, aber lesbarer wäre es in jedem Fall

Oder indem man es mit einem Webfrontend in eine Datenbank einträgt, dann durch 37 Frameworks einen Query erzeugt, der größer ist als die ganze Wikipedia und das Ergebnis für Oculus Rift rendert. Habe gehört, es gibt Bonuspunkte, wenn man auf die Zahlen schießen kann.
 
Hausaufgabe? Jain
Hier geht es primär um den Syntax und nicht um die Definition der if else Funktion.
Eigenleistung wurde auch erbracht - somit im Zweifel für den Boardie.
 
Zurück
Oben