brauche hilfe beim fehler finden

Shakra

Aktives Mitglied
Hallo zusammen,
also ich sitze wieder vor einer aufgabe und ganz am schluss wieder stecken geblieben..
Also ich bekomme in der klasse bibliothek 3 fehlermeldungen die ich iwie nicht nachvolziehen kann..

hier ist die klasse:
Java:
public class bibliothek{
	int anzahl =10;
	
	
	boolean[] buch = new boolean[anzahl];
	for(int i=0; i<anzahl; i++){
		buch[i] = true;
	}
	public boolean temp;
	synchronized boolean leihen(int nummer){
		if(buch[nummer] == true){
			temp = buch[nummer] = true;
			buch[nummer] = false;
			return temp;}
		
			while(buch[nummer] == false){
			try{ wait(); }
			catch(InterruptedException e){e.printStackTrace();}
			}
	}
	
	synchronized boolean rueckgabe(int nummer){
		buch[nummer] = true;
		notifyAll();
}
}}

Fehlermeldungen:
Java:
Zeile 5: Syntax error on token ";", { expected after this token
Zeile 10 und 22: Multiple markers at this line
	- Syntax error on token ")", ; 
	 expected
	- Syntax error on token "(", ; 
	 expected
 
Die Zeilen 5 usw müssen in einer Methode stehen. Z.B. in der Main.
Außerdem müssen die Methoden in jedem Fall Rückgabewerte erhalten, nicht nur wenn eine Bedingung zutrifft.

Dann müssen einige Sachen
Java:
package javaforum;

public class bibliothek {
	int anzahl = 10;

	boolean[] buch = new boolean[anzahl];

	public void initBuecher() {
		for (int i = 0; i < anzahl; i++) {
			buch[i] = true;
		}
	}

	public boolean temp;

	synchronized boolean leihen(int nummer) {
		if (buch[nummer] == true) {
			temp = buch[nummer] = true;
			buch[nummer] = false;
			return temp;
		}

		while (buch[nummer] == false) {
			try {
				wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		return temp;
	}

	synchronized boolean rueckgabe(int nummer) {
		buch[nummer] = true;
		notifyAll();
		return temp;
	}
}
 
Zuletzt bearbeitet:
Steht einfach in der Gegend ohne Methode oder sowas:
Java:
 for(int i=0; i<anzahl; i++){
        buch[i] = true;
    }

und ein weiterer Fehler ist, dass bei deinen Methoden unten nen Return fehlt, da das Return nur im IF- Block steht bzw. einmal gar keins
 
Zuletzt bearbeitet:

Zurück
Oben