public static void main(String[] args) throws Exception {
//User Eingabe
Scanner scanner = new Scanner (System.in);
System.out.printl("Drückste 1 sonst geschte weg mit 2");
while (true) {
System.out.printl("Deine Eingabe");
String.eingabe = scanner.nextLine();
// Eingabewert 1 spielt die musik ab
if (Integer.parseInt(eingabe) == 1) {
Object lock = new Object();
// Spielt die .Wav Datei ab
String soundFile = "/users/Mr.LongDong/desktop/Olexesh.wav";
Wenn ich printl durch println ersetze, und die {, } etwas anpasse, so dass ich es übersetzen kann, funktioniert das bei mir. Was genau geht bei dir nicht?
Wenn ich printl durch println ersetze, und die {, } etwas anpasse, so dass ich es übersetzen kann, funktioniert das bei mir. Was genau geht bei dir nicht?
Achso, ich dachte, der Code macht nur nicht das, was er soll (und hast ihn dann irgendwie falsch hier her kopiert).
Solche Fehler hast du einige, hier sind alle korrigiert:
Code:
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineEvent;
import java.io.File;
import java.util.Scanner;
public class Joo {
public static void main(String[] args) throws Exception {
//User Eingabe
Scanner scanner = new Scanner (System.in);
System.out.println("Drückste 1 sonst geschte weg mit 2");
while (true) {
System.out.println("Deine Eingabe");
String eingabe = scanner.nextLine();
// Eingabewert 1 spielt die musik ab
if (Integer.parseInt(eingabe) == 1) {
Object lock = new Object();
// Spielt die .Wav Datei ab
String soundFile = "/users/Mr.LongDong/desktop/Olexesh.wav";
try (AudioInputStream ais = AudioSystem.getAudioInputStream(new File(soundFile))){
Clip clip = AudioSystem.getClip();
clip.open(ais);
clip.addLineListener((e) -> {
if (e.getType() == LineEvent.Type.STOP) {
synchronized (lock) {
lock.notify();
}
}
});
clip.start();
}
synchronized (lock) {
lock.wait();
}
}else {
System.out.println("Haddeee Lan du willst keine Musik");
break;
}
}
}
}
Im Detail: System.out.printl gibt es nicht, sondern System.out.println.
Du hattest String.eingabe irgendwo. Nach dem synchronized Block hat ein } gefehlt, nach dem else Block hingegen war eins zu viel. Wenn du eine IDE nutzt kannst du Code automatisch einruecken lassen, dann fallen dir solche Fehler schneller auf.
Hier egal, aber im Allgemeinen solltest du statt notify() immer lieber notifyAll() verwenden. Denn notify() weckt ein beliebiges Thread auf, ohne dass du Einfluss nehmen kannst, welches. Also ist es immer besser, alle aufzuwecken, und unnoetig aufgewachte wieder schlafen zu legen (deswegen sollte wait() nur in einer Schleife vorkommen). Sobald mehrere Threads beteiligt sind, verursachen notify() und wait() ohne Schleife schnell Bugs. Hier aber egal, weil es ohnehin nur ein schlafendes Thread gibt.
Hier, der Code ist falsch, ist kein If statement...
Code:
synchronized (lock) {
lock.wait();
} else {
System.out.println("Haddeee Lan du willst keine Musik");
break;
}
Bin relativ neu in Java und hab nicht viel Dunst davon...
Quote:
Originally Posted by algernong
Achso, ich dachte, der Code macht nur nicht das, was er soll (und hast ihn dann irgendwie falsch hier her kopiert).
Solche Fehler hast du einige, hier sind alle korrigiert:
Code:
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineEvent;
import java.io.File;
import java.util.Scanner;
public class Joo {
public static void main(String[] args) throws Exception {
//User Eingabe
Scanner scanner = new Scanner (System.in);
System.out.println("Drückste 1 sonst geschte weg mit 2");
while (true) {
System.out.println("Deine Eingabe");
String eingabe = scanner.nextLine();
// Eingabewert 1 spielt die musik ab
if (Integer.parseInt(eingabe) == 1) {
Object lock = new Object();
// Spielt die .Wav Datei ab
String soundFile = "/users/Mr.LongDong/desktop/Olexesh.wav";
try (AudioInputStream ais = AudioSystem.getAudioInputStream(new File(soundFile))){
Clip clip = AudioSystem.getClip();
clip.open(ais);
clip.addLineListener((e) -> {
if (e.getType() == LineEvent.Type.STOP) {
synchronized (lock) {
lock.notify();
}
}
});
clip.start();
}
synchronized (lock) {
lock.wait();
}
}else {
System.out.println("Haddeee Lan du willst keine Musik");
break;
}
}
}
}
Im Detail: System.out.printl gibt es nicht, sondern System.out.println.
Du hattest String.eingabe irgendwo. Nach dem synchronized Block hat ein } gefehlt, nach dem else Block hingegen war eins zu viel. Wenn du eine IDE nutzt kannst du Code automatisch einruecken lassen, dann fallen dir solche Fehler schneller auf.
Hier egal, aber im Allgemeinen solltest du statt notify() immer lieber notifyAll() verwenden. Denn notify() weckt ein beliebiges Thread auf, ohne dass du Einfluss nehmen kannst, welches. Also ist es immer besser, alle aufzuwecken, und unnoetig aufgewachte wieder schlafen zu legen (deswegen sollte wait() nur in einer Schleife vorkommen). Sobald mehrere Threads beteiligt sind, verursachen notify() und wait() ohne Schleife schnell Bugs. Hier aber egal, weil es ohnehin nur ein schlafendes Thread gibt.
Danke dir , bin bloß dabei die Sprache zu erlernen und da sind solche Fehler ganz normal
Dann solltest du dir auch die Zeit nehmen und die Fehlermeldungen lesen. Java sagt eigentlich immer ziemlich deutlich was nicht stimmt. Da habe ich schon schlimmere Sprachen gesehen, bei denen es nur einen eher kryptischen Fehlercode gibt und die angegebene Zeile nur selten den Fehler enthält.
Der Fehler "'else' without 'if'" ist ziemlich leicht zu verstehen, frei übersetzt könnte man sagen "Du hast ein 'else', aber du hast kein 'if'". Ein 'else' muss immer ein 'if' haben, ein 'if' muss aber kein 'else' haben.
Und zu "ganz normal": Mir sind solche Fehler nicht ein mal am Anfang passiert, aber vielleicht bin ich ja auch nicht "normal".
Dann solltest du dir auch die Zeit nehmen und die Fehlermeldungen lesen. Java sagt eigentlich immer ziemlich deutlich was nicht stimmt. Da habe ich schon schlimmere Sprachen gesehen, bei denen es nur einen eher kryptischen Fehlercode gibt und die angegebene Zeile nur selten den Fehler enthält.
Der Fehler "'else' without 'if'" ist ziemlich leicht zu verstehen, frei übersetzt könnte man sagen "Du hast ein 'else', aber du hast kein 'if'". Ein 'else' muss immer ein 'if' haben, ein 'if' muss aber kein 'else' haben.
Und zu "ganz normal": Mir sind solche Fehler nicht ein mal am Anfang passiert, aber vielleicht bin ich ja auch nicht "normal".
Du bist nicht normal ich habe den Theard nach der Vorlesung erstellt und da war mein Kopf nicht mehr zum Denken zu gebrauchen
Nun habe ich es verstanden. Der if block liegt in der Schleife. Da die schleife aber geschlossen wurde, geht ein else natürlich nicht. Ich dachte, das der else Block noch in der Schleife integriert war.
Nun habe ich es verstanden. Der if block liegt in der Schleife. Da die schleife aber geschlossen wurde, geht ein else natürlich nicht. Ich dachte, das der else Block noch in der Schleife integriert war.
Grüße
TheRealLenon
If/else hat nichts mit Schleifen zu tun.
Bei der If Bedingung geht es nur darum, dass WENN ein bestimmter Zustand eintritt, ein in den Klammern liegender Codeblock ausgeführt ist. ELSE bedeutet dann nichts anderes, dass falls die IF Bedingung nicht zutrifft, ANSONSTEN der in dem else Block geschriebene Code ausgeführt wird.
Dann solltest du dir auch die Zeit nehmen und die Fehlermeldungen lesen. Java sagt eigentlich immer ziemlich deutlich was nicht stimmt. Da habe ich schon schlimmere Sprachen gesehen, bei denen es nur einen eher kryptischen Fehlercode gibt und die angegebene Zeile nur selten den Fehler enthält.
Der Fehler "'else' without 'if'" ist ziemlich leicht zu verstehen, frei übersetzt könnte man sagen "Du hast ein 'else', aber du hast kein 'if'". Ein 'else' muss immer ein 'if' haben, ein 'if' muss aber kein 'else' haben.
Und zu "ganz normal": Mir sind solche Fehler nicht ein mal am Anfang passiert, aber vielleicht bin ich ja auch nicht "normal".
Quote:
Originally Posted by XYZ-Cannon
If/else hat nichts mit Schleifen zu tun.
Bei der If Bedingung geht es nur darum, dass WENN ein bestimmter Zustand eintritt, ein in den Klammern liegender Codeblock ausgeführt ist. ELSE bedeutet dann nichts anderes, dass falls die IF Bedingung nicht zutrifft, ANSONSTEN der in dem else Block geschriebene Code ausgeführt wird.
[Root]Setting.lua fehler aber Fehler nicht zu beheben?? 08/09/2011 - Metin2 Private Server - 5 Replies Richte für jemanden den root ein, aber bei dem fehler bin ich jetzt selber an meine grenzen gekommen.
Folgender Fehler kommt beim starten:
http://www.fotos-hochladen.net/uploads/unbenan11n tij3uvlnr5d.png
Die syserr daneben gehört dazu, die Setting.lua habe ich schon durch getauscht, kommt aber immer noch der Fehler :confused:
Datenbank auch schon getauscht, aber was ist dieses:
Infinite Aion: Fehler (1024) Fehler beim initialisieren des Spiels 06/09/2011 - Aion Private Server - 5 Replies Hi Leute,
ich hab ein Probem mit AION:
jedesmal wenn ich starte, egal ob mit dem NCSoft Launcher oder mit dem Infinite Aion Launcher kommt die Meldung Fehler beim initialisieren des Spiels...
Hab schon alle möglichen Sprachkombinationen durchprobiert, da es überall heißt man soll Region und Sprache beim NCSoft Launcher ändern und dann gehts...
Alles probiert, und siehe da: geändert hat sich nichts... Immer noch der Fehler 1024...
wäre nett, wenn mir da jemand helfen könnte und auch...