99 Bottles of Beer

Korrekte Ausgabe

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

99 Bottles of Beer
Das ist ein Ausschnit der Ausgabe. (Ohne es vorher zu Synchronisieren)

Es gibt keine Endlosschleife. Passt es so?

Ich frage, weil es kann ja sein, dass die Erkenntnis das mehrere Threads auf einem Datenfeld, ohne weiteres zu Problemen führt.

Danke.


Im ersten Absatz der Aufgabenstellung steht, dass jede Variable THREADNUMMER eines Threads einen einmaligen Wert haben soll. Dementsprechend sollte auch deine Ausgabe niemals zweimal die selbe Zeile beinhalten. In deinem Ausschnitt gibt es aber zweimal den Satz mit “7 bottles of beer …”, d.h. du hast zwei Threads die gleiche Nummer gegeben. Wenn du bspw. dem Programm den Parameter 7 übergibst, heißt das, dass 7 Threads gestartet werden sollen und die Ausgabe soll “6 bottles of beer …”, “5 bottles of beer …”, usw. bis “No more bottles of beer …” beinhalten.


Wie kann man in Eclipse Parameter der Konsole übergeben?


Unter “Run Configurations” gibt es das Tab “Arguments”. Da kannst du Parameter für den Programmaufruf eintragen.


Ich habe mich bei meiner Lösung vorläufig an das Gerüst der Lösungsvorschläge gehalten, um mal zu schauen, ob das alles so klappt. Jetzt bekomme ich allerdings immer diese Fehlermeldung und weiß nicht mehr weiter. Google konnte mir auch nicht viel dazu sagen.

Das ist die betreffende Code-Zeile, die ich unverändert aus dem Lösungsvorschlag übernommen habe:

	public static void main(String[] args) throws InterruptedException {
		final int threads = Integer.parseInt(args[0]);
		final Thread[] ts = new Thread[threads];	

Und das hier die dazugehörige Fehlermeldung:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
             at Bier_und_suff.main(Bier_und_suff.java:5)

Ok hat sich erledigt, ich war ein bisschen doof und hatte mich bei den Run Configurations verschrieben.Gute Nacht :smiley: