Code checken?

@Matze
Nur das muss man erstma wissen ^^ Wenn in dem Buch was er da hat nur "umwandeln" benutzt wird. Ma sehen wie lange es dauert bis das naechste Problem kommt ^^

Edit:
Wenn ich nach "umwandeln long int java" suche, ist bei mir der 5. link
Java Programming - Converting Long to Int and vice versa
Da er ja auch nach long int java sucht, was ja schon zum suchen gereicht haette ^^
 
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.

Es mangelte mir einfach an der Fachsprache, was matze ja dann nochmal klargestellt hat
Also ist das eine schlechte Ausrede.

MFG

zEriX
 
@Matze
Nein, das hab ich doch net gesagt, ich habs nur mal gesagt und auch nen Smilie hinter gemacht :)
 
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);
	}
}
 
Was ist denn
name.neingabe(nam);
name?
neingabe?
nam wird nirgends gesetzt? Wenn der jenige auf 3 drueckt, fragst du gar net nach dem neuen Namen?

Achja, Klassennamen immer gross schreiben, variablen und Methodennamen klein
 
Ich blick zwar immer noch nicht ganz durch, aber du weißt schon, dass return erst nach der while-Schleife steht?!
 
Also du aenderst den namen mit der Methode
name.neingabe(nam);

Du gibst mit der Methode neingabe auch nen neuen Namen zurueck, aber der wird nicht in den alten Namen gespeichert. Der geht verloren!
 

Neue Beiträge

Zurück