Schaffe es nicht Random-Programmierung zu vollenden. Wo liegt der Fehler in diesem Code?

RememberdiAlamo

Aktives Mitglied
Hallo :)
Ich hab hier ein kleines Problemchen mit der Programmierung. Die Aufgabe lautet:
Bestimmen Sie in Ihrem Programm per Zufallsgenerator eine ganze Zahl wischen 0 und 20. Raten Sie diese Zahl, indem Sie über eine Dialogbox eine Zahl eingeben. Dieser Vorgang wird wiederholt, bis die Zahl erraten wurde. Ein etsprechender Text soll ausgegeben werden. Wenn richtig (true) dann soll das Programm beendet werden, falls falsch, die Zahl nochmal eingegeben werden.

Soo, ich habe mich an dieser (für mich) sehr schwierigen Aufgabe versucht und nach über 2 Stunden mühseligem herumfurwerkeln kam ich auf "das" hier: :autsch:
Java:
import javax.swing.JOptionPane;
class random{
	public static void main (String[] args) {
	
	//Variablen festlegen
	String eingabe, ausgabe;
	int zufall, zahl;
	zufall = (int)(Math.random()*21);
	
	//initializieren
	eingabe = JOptionPane.showInputDialog("Gib eine Zahl zwischen 0 und 20 an");
	zahl = Integer.parseInt (eingabe);
	
		//Fallunterscheidung
		if (zahl>20) {
			ausgabe = "Die Zahl"+zahl+" liegt nicht innerhalb der begrenzten Auswahlmöglichkeit.Gib eine andere ein";
		}
			
		else if ((zahl >= 0) && (zahl <=20)) {
			ausgabe = "Die Zufallszahl ist die "+zufall+". ist das die Zahl, die du eraten hast?";
		}
		
		//Ergebnis
		JOptionPane.showMessageDialog (null, ausgabe);
		
		
	}
}
Wie man sehen kann bin ich nichtmal zu dem Teil gekommen, wo ich die ganze true/false, continue/exit
Anweisungen programmieren sollte. Da steht immer "variable ausgabe might not have been initialized."

Ich bin mir nicht sicher ob es an der Random liegt. Gebe ich das vereinfacht so ein in den Compiler
Java:
class random2{
	public static void main (String[] args) {
	
		int zufall = (int)(Math.random()*21);
			System.out.println(zufall);
		
	}
}
so erlange ich zufällige Zahlenwerte.
Wäre daher nett, wenn mir jemand damit helfen könnte.
 
Zuletzt bearbeitet:

diggaa1984

Top Contributor
Ja die Fehlermeldung ist ja eindeutig. Der compiler hat Angst das deine "ausgabe" nicht initialisiert ist, wenn es dann unten zur Anzeige kommt:
Java:
//Fallunterscheidung        
if (zahl>20) {            
    ausgabe = "Die Zahl"+zahl+" liegt nicht innerhalb der begrenzten Auswahlmöglichkeit. Gib eine andere ein";        
} else if ((zahl >= 0) && (zahl <=20)) {            
    ausgabe = "Die Zufallszahl ist die "+zufall+". ist das die Zahl, die du eraten hast?";        
}

Wenn Zahl größer als 20 .. schreib was in ausgabe
Sonst
Wenn Zahl zwischen 0 und 20 .. schreib was in ausgabe

Wenn beides nicht gilt (zahl < 20) .. dann ist Ausgabe nicht initialisiert!
 

Fesker

Mitglied
Hej, hast nur nen logischen Denkfehler drin.
Das sollte schon eher funktionieren.
Java:
  if (zahl>20 || zahl < 0) {
            ausgabe = "Die Zahl"+zahl+" liegt nicht innerhalb der begrenzten Auswahlmöglichkeit.Gib eine andere ein";
        }
           
        else {
            ausgabe = "Die Zufallszahl ist die "+zufall+". ist das die Zahl, die du eraten hast?";
        }

grüße!
 
Zuletzt bearbeitet:

BuddaKaeks

Bekanntes Mitglied
Nö, da es eine lokale Variable ist, wird diese nicht initialisiert, d.h. da ist kein Speicherplatz reserviert worden.
Schreib doch einfach:

String ausgabe = "";

oder mach einen else-Teil an den Teil, wo du ausgabe setzt und schreib dort:

ausgabe = "Unerwrteter Fall ist eingetreten";
 

rme

Top Contributor
Wenn die Beschreibung einen Text der Form "so lange, bis" beinhaltet, ist das ein quasi sicherer Hinweis, dass man eine Schleife brauchen wird ;)
 

RememberdiAlamo

Aktives Mitglied
zwar nicht das geworden was ich wollte, aber hier was was funktioniert hat :autsch:

Java:
//Deklaration 
            String eingabe, ausgabe ="";
      		int zahl;
      		int zufallsZahl;
            
            //Zahl per Zufall zwischen 0 und 10 bestimmen
            //random liefert Zahl mit 0<= zahl < 1
            zufallsZahl = (int)(Math.random()*11);
            
            
             
            //Werte ueber Dialogbox einlesen
            
            eingabe = JOptionPane.showInputDialog("Rate eine Zahl zwischen 0 und 10");
            zahl = Integer.parseInt (eingabe);
             
            //Fallunterscheidung und Schleife
            while(zahl != zufallsZahl){
            
                if (zahl < zufallsZahl && zahl > 0)
           			ausgabe = "hast nicht die richtige Zahl getroffen.";
           		else if (zahl > zufallsZahl && zahl < 11)
           			ausgabe = "Hast nicht die richtige Zahl getroffen.";
				else
					ausgabe = "Zahl muss zwischen 0 und 10 liegen";
           		
           		JOptionPane.showMessageDialog(null, ausgabe);
           		
           		eingabe = JOptionPane.showInputDialog("Versuchs nochmal");
            	zahl = Integer.parseInt (eingabe);
           		
          	}
          	
          	JOptionPane.showMessageDialog(null, "Gratuliere! Du hast grad wertvolle Zeit deines Lebens vergeudet! Willst du nochmal spielen?");
          
      }
      
}

Ich wollte das eigentlich mit true/false Optionen und wenn true ist dann soll das Programm beendet werden, wenn false,dann sollte es wiederholen. Etwas ähnliches wollte ich mit der PIN-Nummerabfrage machen. Wenn 3 mal falsch geraten wurde, dann soll sich das Programm nicht schließen sondern so zu sagen umleiten, dass man die PUK-Nummer eingeben muss.. Mir fehlt aber wohl noch die Übung :rtfm:
 
Zuletzt bearbeitet:

Fesker

Mitglied
Deine Schleifenkonstruktion funktioniert bestimmt, hätte sie aber weniger kompliziert mit den if-Anweisungen gestaltet, denke ich. Liest sich irgendwie schwer.

Für deine PIN müsstest du nur noch eine Countervariable einbauen, die bei jeder Falscheingabe um einen hochzählt. (also in deinen Else-Abschnitt)

Wenn sie bei 3 angekommen ist, kannst du evtl. eine neue while-schleife starten, mit der PUK-Nummer.
 

RememberdiAlamo

Aktives Mitglied
damit ist ja sicherlich der inkrement ++ gemeint. Ja, hab das auch schon überlegt. Ich denke wohl einfach zu kompliziert.
Das mit der PUK, wär das nicht schon eher eine Array-Anweisung oder so? Sorry üfr meine Noobigkeit, bin aber erst seit 3 Wochen an Java dran...
 
Zuletzt bearbeitet:

Fesker

Mitglied
Ich versuch mich ja auch erst seit letztem Samstag. =P

Die PUK, die denkst du dir ja aus. Ein Array bringt dir da nichts.
Du erstellst einfach eine int oder String Variable namens PUK mit einem vorgegebenen wert von.. keine Ahnung "12345" und vergleichst dann einfach wieder den eingegebenen Wert mit der PUK. Wenn die dann wieder 3x falsch ist, wird halt gesagt, das dein Rechner ab sofort gesperrt ist, du bekommst einen Bluescreen, ein paar Schwulenpornos auf den Desktop verlinkt und den Bundestrojaner noch dazu. ;)

Inkrement ist ganz einfach.
Countervariable erstellt.
Code:
int counter = 0;

dann in deiner else-anweisung einfach
Code:
counter = counter + 1
schreiben.
Weil die sagt ja, dass soeben etwas falsches eingegeben wurde.

und anschließend gleich eine neue if-Bedingung einbauen, die checkt, ob counter >= 3 ist..
und dann käme von mir aus deine neue while-schleife mit der PUK nach dem gleichen Prinzip.

Grüße.
 
Zuletzt bearbeitet:

diggaa1984

Top Contributor
Java:
if (zahl < zufallsZahl && zahl > 0)
    ausgabe = "hast nicht die richtige Zahl getroffen.";
else if (zahl > zufallsZahl && zahl < 11)
    ausgabe = "Hast nicht die richtige Zahl getroffen.";
else
    ausgabe = "Zahl muss zwischen 0 und 10 liegen";

Könnte man auch optimieren zu:
Java:
int max = 10; ////zahl für obere Grenze definieren, gerne auch final static als Klassenattribut
int zufallsZahl = (int) (Math.random() * (max+1)); //Zufallszahl in Abhaengigkeit dieser Variable

while (...) {
    if (zahl < 0 || zahl > max) { //Grenzwertüberschreitung checken
        ausgabe = "Zahl muss zwischen 0 und " + max + " liegen";
    } else if (zahl >= 0 && zahl <= max) { //Zahl im gueltigen Bereich, aber falsch
        ausgabe = "Hast nicht die richtige Zahl getroffen.";
    }

   ...
}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Hilfe! Schaffe es nicht den folgenden Code zu compilieren Java Basics - Anfänger-Themen 2
A Wie schaffe ich das eine while Schleife addiert danach subtrahirt? Java Basics - Anfänger-Themen 1
M Wie schaffe ich den Einstieg? Java Basics - Anfänger-Themen 2
T Wie schaffe ich es mehrere Strings via Konsole einzulesen Java Basics - Anfänger-Themen 7
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 1
D Regex greift nicht richtig Java Basics - Anfänger-Themen 4
richis-fragen JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
richis-fragen JTable Header ausgeblendete (width = 0) nicht per mouseDragged aufziehen. Java Basics - Anfänger-Themen 9
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
S Wie debugge ich dies am besten: SingleThreadExecutor führt Task nicht aus..? Java Basics - Anfänger-Themen 29
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
K Verstehe Rekursion nicht ganz Java Basics - Anfänger-Themen 7
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
K TicTacToe belegtes feld nicht neu besetzbar Java Basics - Anfänger-Themen 1
K TicTacToe belegtes Feld nicht neu besetzbar Java Basics - Anfänger-Themen 3
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
G Mit jPackage erstellte EXE funktioniert nicht Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
missy72 Erste Schritte (nicht) Deterministischer endlicher Automat Java Basics - Anfänger-Themen 9
T Getter/Setter - wie sieht ein Setter aus? Und wie nicht? Java Basics - Anfänger-Themen 34
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
P Netbeans installation geht nicht Java Basics - Anfänger-Themen 26
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
T HashMap Lsite gibt die sachen nicht aus wie gewollt. Java Basics - Anfänger-Themen 3
H Counter durch gepresste Taste nur auf 1 erhöhen und nicht durchzählen lassen Java Basics - Anfänger-Themen 7
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
T scanner nicht erkannt Java Basics - Anfänger-Themen 3
monsterherz Punkt Notation funktioniert nicht Java Basics - Anfänger-Themen 4
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
D Jar Datei startet unter Linux nicht Java Basics - Anfänger-Themen 3
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
Darkherobrine9 Import klappt nicht Java Basics - Anfänger-Themen 7
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
_so_far_away_ Inventarisierungssystem brauche switch Cases und weiß nicht, wie ich e implementieren muss Java Basics - Anfänger-Themen 5
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
C Kann mir jemand sagen warum ich nicht mal rechnen kann ? Java Basics - Anfänger-Themen 32
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
A JavaFX-Anwendung läuft nicht mit Selenium WebDriver Java Basics - Anfänger-Themen 0
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
heinrich172 Methoden Trotz gleichem Element stimmt Vergleich nicht? Java Basics - Anfänger-Themen 7
I Entity Objekt nicht gefunden -> Webhook empfangen in der gleichen Methode (Transaktion) Java Basics - Anfänger-Themen 37
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
MiMa Ungültiges Datum wird nicht erkannt ?? Java Basics - Anfänger-Themen 6
J Meine Mails gehen nicht raus Java Basics - Anfänger-Themen 8
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
S Ist JDK jetzt free oder nicht? Java Basics - Anfänger-Themen 5
K Warum läuft das Programm nicht(bzw. nicht richtig) Java Basics - Anfänger-Themen 4
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
M Methoden Methode 'wiederhole' nicht gefunden (Uebersetzungsfehler) Java Basics - Anfänger-Themen 1
D Eclipse will nicht auslesen Java Basics - Anfänger-Themen 6
Temsky34 Array IndexOf nicht verfügbar Java Basics - Anfänger-Themen 18
TeacherMrSSimon Schachspiel, Werte in Figur eintragen klappt nicht Java Basics - Anfänger-Themen 23
B von Java/Eclipse verwendete Datei existiert gar nicht? Java Basics - Anfänger-Themen 6
ms_cikar Bin to Float convertieren funktioniert nicht Java Basics - Anfänger-Themen 24
B Schrankensystem mit Farberkennung für Flashgame funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
M JButton setBackground() färbt nicht den ganzen Knopf Java Basics - Anfänger-Themen 4
K REGEX - Rechnungsbetrag wird nicht richtig ausgelesen. Java Basics - Anfänger-Themen 3
B Dekorator Muster - Irgendwas stimmt hier doch nicht? Java Basics - Anfänger-Themen 4
I Greenscreen, funktioniert nicht zu 100%... nicht alle Pixel werden geändert Java Basics - Anfänger-Themen 1
C Java boolean Code läuft nicht Java Basics - Anfänger-Themen 5
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
frager2345 Warum muss ich hier im Konstruktor meine Exeption nicht abfangen ? Java Basics - Anfänger-Themen 4
P Neue Java v8 JRE Version nicht über alte drüber installierbar: Wie sonst? Java Basics - Anfänger-Themen 7
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 22
JordenJost char variable funktioniert irgendwie nicht a+b ergibt nicht à Java Basics - Anfänger-Themen 4
MarvinsDepression Umgebungsvariable kann Java-Applikationen außerhalb der IDE nicht starten Java Basics - Anfänger-Themen 4
G jar file lässt sich nicht öffnen Java Basics - Anfänger-Themen 1
D Warum kann ich hier nicht auf die Methode zugreifen? Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben