Es wurde schon mal gesagt, dass du casten sollst. Es wurde das Wort casten genutzt. Damit hattest du das Fachwort. Gibst du bei Google ein findest du auch eine Antwort. Du hast alles gewusst, was du brauchtest um bei google eine Lösung zu finden.
Also ist das eine schlechte Ausrede.
MFG
zEriX
es soll gar keine Ausrede sein, es ist einfach ein Fakt! Jeder weiß hier, dass ich nicht gut beim programmieren bin ,da muss ich mich nicht irgendwie rausreden
NÄCHSTES PROBLEMCHEN IST DA
Hat eigentlich alles super geklappt!, Aber
Java:
import java.io.*;
public class start {
public static void main (String[] args) // Die Main-Klasse
throws IOException {
int a = 0;
int c = 0;
//if (c == 0) {
String nam = "Unknown";
// c = c + 1;
//} // Beginn der While-Schleife, damit das Programm öfters ausgeführt wird
while (a == 0) {
System.out.println ("----------------");
System.out.println ("--- Spielername:" + nam + "---");
System.out.println ("-----<Menu>-----");
System.out.println ("(1) Spiel starten");
System.out.println ("(2) Highscore anschauen");
System.out.println ("(3) Name umbenennen");
System.out.println ("(4) Programm beenden");
System.out.println ("----------------");
BufferedReader bin = new BufferedReader(new InputStreamReader(System.in)); // Die Menüauswahl
String menuwahl = bin.readLine();
int menuewahl = Integer.parseInt(menuwahl);
if (menuewahl == 1) { // Ausführung der zuvor gewählten Menüpunkte
spiel.Levelw(); // teils in anderen Klassen / Methoden
} else if (menuewahl == 2) {
} else if (menuewahl == 3) {
name.neingabe(nam);
} else if (menuewahl == 4) {
System.out.println ("----------------"); // beenden der while-schleife durch änderung der variablen " a "
System.out.println("(0) Zurueck");
System.out.println("(1) Beenden");
System.out.println ("----------------");
String ab = bin.readLine();
a = Integer.parseInt(ab);
} else {
System.out.println ("----------------");
System.out.println ("Error bei der Eingabe, Bitte neu wählen."); // Fehlermeldung bei unbekannter/falscher Eingabe
System.out.println ("----------------");
}
}
}
}
ist der Code der Main-Klasse! Es geht um die Funktion " Namen umbennnen".
Das funktioniert auch alles super! Kompilieren lässt sich der Code auch, aber ich habe da ein "logik-problem"!
Ich weiß nicht warum, aber es ist so, dass das Programm offenbar nach der whileschleife, bzw nach dem Ende der whileschleife, nicht die while-schleife startet, sondern ganz oben! Dabei wird der gerade zuvor geänderte Name wieder auf "Unknown gesetzt.
Wie kann man das umgehen! Zuerst dachte ich mit ner einfachen If-abfrage (ist oben hinter den // zu sehen, aber wenn ich das mache, bekomme ich den Eroor, dass die Variable nam nicht deklariert wurde. Ich hoffe einer hat die zündende Idee!
mfg
okok, ich war zu vorschnell! ist gar kein logikfehler sondern irgendwas anderes
offenbar habe ich zwar den return in der methode angegeben, aber ich denke mal, dass ich i-wie in der main sagen muss, dass er es übernhemen muss, Frage wäre dann wie geht das?
unten dran nochmal die Namen-Funktion
Java:
import java.io.*;
public class name {
public static String neingabe(String nam)
throws IOException {
BufferedReader bin = new BufferedReader(new InputStreamReader(System.in));
int b = 0;
while (b == 0) {
System.out.println ("----------------");
System.out.println("Derzeitiger Name: " + nam );
System.out.println ("(0) Umbenennen");
System.out.println("(1) Zurueck");
System.out.println ("----------------");
String namenn = bin.readLine();
int ncheck = Integer.parseInt(namenn);
if (ncheck == 0) {
System.out.println ("----------------");
System.out.println("Geben sie nun den neuen Namen ein!");
System.out.println ("----------------");
nam = bin.readLine();
} else if (ncheck == 1){
b = b + 1;
} else {
System.out.println ("----------------");
System.out.println("Error bei der Auswahl");
System.out.println ("----------------");
}
}
return (nam);
}
}