Zahlenraten

RJ019

Mitglied
Hallo,
ich bin mit meinem Programm schon fast zufrieden, ich bekomme einfach nicht die Funktion meiner Schleifer nicht hin....

Ich bin absoluter neuling in sachen Java. Ich verstehe den Sinn hinter der Fußzeile aber irgendwie nicht wie ich sie Programmiere :bahnhof:

Könnte mir da bitte jemand auf die Sprünge helfen?

Java:
import javax.swing.JOptionPane;

public class WennDannSchleife {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("Errate die Zahl zwischen 1 und 6");
		int sZufall = 1 + (int)(Math.random()*6);
		System.out.println("Testausgabe "+sZufall); // Wenn Fertig löschen!!	
do {
	String Eingabe = JOptionPane.showInputDialog("Bitte Zahl eingeben");
	Integer sEingabe = Integer.parseInt(Eingabe);			
			if (sZufall < sEingabe) {
				System.out.print("Eingabe zu groß");				
			}
			else if (sZufall > sEingabe) {
				System.out.print("Eingabe zu klein");
				
			}			
			else
			{
				System.out.println("Eingabe richtig!!!");
			}
		} while (sEingabe!=sZufall);
}
}
 
Zuletzt bearbeitet von einem Moderator:

Zitrus

Bekanntes Mitglied
So wie du es schreibst kann es nicht funktionieren, da die while-Zeile unten den integer sEingabe nicht erkennt. Das liegt daran da der int sEingabe eine Lokalvariable ist und nur in der do-Anweisung "sichtbar" ist. Wenn ich du wäre würde die sEingabe als Klassenvariable initialisieren. Das sieht ungefähr so aus:

Java:
public class WennDannSchleife {
static int sEingabe;
[...]
do {
[...]
sEingabe = Integer.parseInt(Eingabe);

Ausserdem, ist aber eher ein Schönheitsfehler, würde ich noch ein weiteres else if schreiben welches dem Benutzer keine höhere bzw. kleinere Zahl als 6/1 erlaubt.

Java:
else if(sEingabe > 6 || sEingabe < 1) {
System.out.println("Du kannst nur zwischen Zahlen von 1-6 wählen!");
}

Zu guter letzt würde ich die System.out.print()-methoden zu System.out.println()-methoden umschreiben, da diese schöner anzusehen sind (zumindest in eclipse).

Ich hoffe ich war verständlich.

Mit freundlichen Grüßen,
Zitrus

PS: Eine kurze Erklärung zur letzten Zeile
Java:
Solange wie (sEingabe nicht sZufall) ist,
wiederhole anweisungen im do-block

@franky Das habe ich mich zuerst auch gefragt, hab den Code dann mal in eclipse eingegeben und gesehen das ihm ein kleiner Fehler mit der Lokalvariable geschehen ist :) Ich glaube das hat ihn etwas aus dem Konzept gebracht
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben