myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Ungelesen 10.09.12, 14:15   #1
Meisterroper
Ohh die Meisterröstung!
 
Benutzerbild von Meisterroper
 
Registriert seit: Jun 2011
Ort: Deutschland
Beiträge: 106
Bedankt: 78
Meisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt Punkte
Standard [JAVA] .equals problem

Hi leute ich hab hier im folgenden programm code einen fehler.
Ich hab aber kein plan wo er ist in der schule hats noch geklappt nur jetzt als ich daheim 2-3 sachen hinzufügen wollte, klappts aufeinmal net mehr.

Bitte antwortet so schnell wie möglich, (Java editor sagt der fehler ist :

Zahlenraten.java:52:12: variable spielversuch might not have been initialized
while (spielversuch.equals("ja")|| spielversuch.equals("Ja"));

)

Code:
import java.util.Scanner;
public class Zahlenraten
{
  public static void main (String[] args)
  {
    String spielversuch;
    int k;
    // generieren der zufallszahl.
    int zahl = (int)(100 * Math.random() + 1);
    Scanner eingabe = new Scanner (System.in);
    //Spiel beginn.
    do
    {
      
      //Frage nach der anzahl der benötigten versuche.
      System.out.print ("Wie viele versuche brauchst du zum eraten der gesuchten zahl: ");
      int versuche = eingabe.nextInt();
      //Frage nach der zuratenden zahl.
      System.out.print ("Bitte geben sie eine zahl zwichen 1 und 100 ein: ");
      int geraten = eingabe.nextInt();
      
      for (k = 0; k <= versuche ;k++ ) {
        
        //Abfrage von eingabe der geraten zahl, (falls >100 oder <0 ) neue zahl eingaben.
        while ((geraten <= 0 || geraten >= 101))
        {
          System.out.print("Bitte gebe eine andere zahl ein: ");
          geraten = eingabe.nextInt();
        }
        
        //Wenn die zahl zwichen 1 und 100 ist, wiederholt das progrann die abfrage ob die zahl stimmt, zu groß oder zu klein ist.
        do
        {
          if (geraten <= zahl)
          {
            System.out.print("Das war leider falsch, die zahl ist zu klein, versuch es noch einmal: ");
            geraten = eingabe.nextInt();
          }
          if (geraten >= zahl)
          {
            System.out.print("Das war leider falch, die zahl ist zu groß, versuch es noch einmal: ");
            geraten = eingabe.nextInt();
          }
        }
        while (geraten != zahl);
        System.out.print ("Herzlichen Glückwunsch ! Du hast gewonnen." + "\n" +"Willst du nochmal spielen? ");
        spielversuch= eingabe.next();
      }         
    }
    
    //Abfrage ob das spiel wiederholt werden soll
    while (spielversuch.equals("ja")|| spielversuch.equals("Ja"));
    
    
    System.out.print ("Schade, bis zum nächsten mal.");
    
  }
}
__________________

[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
Meisterroper ist offline   Mit Zitat antworten
Ungelesen 10.09.12, 14:40   #2
Robar666
Anfänger
 
Registriert seit: Apr 2012
Beiträge: 43
Bedankt: 16
Robar666 ist noch neu hier! | 0 Respekt Punkte
Standard

Hab mir den code jetzt nicht detaillierter angesehen, aber der Fehler sagt ja eh schon alles:

"Zahlenraten.java:52:12: variable spielversuch might not have been initialized"

Die Variable 'spielversuch' ist nicht initialisiert, sie ist NULL. Wenn du da jetzt 'spielversuch.equals()' aufrufst bekommst du natürlich einen Fehler.
Robar666 ist offline   Mit Zitat antworten
Ungelesen 10.09.12, 14:40   #3
slahn
Erfahrenes Mitglied
 
Benutzerbild von slahn
 
Registriert seit: Oct 2009
Beiträge: 640
Bedankt: 228
slahn ist noch neu hier! | 0 Respekt Punkte
Standard

Die for-Schleife in Zeile 22 wird nur dann ausgeführt, wenn versuche größer oder gleich 0 ist. Ist dies nicht der Fall, wird durch die Position von "spielversuch= eingabe.next();", spieleversuch nicht initialisiert.

Übrigens, wird auch dein Zufallszahl zu früh initialisiert. Dadurch muss dein Spieler immer wieder die selbe Zahl erraten, außer er beendet das Spiel komplett und startet es neu ...
__________________
"[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]" (Klopfers Vater)
slahn ist offline   Mit Zitat antworten
Ungelesen 10.09.12, 15:07   #4
Meisterroper
Ohh die Meisterröstung!
 
Benutzerbild von Meisterroper
 
Registriert seit: Jun 2011
Ort: Deutschland
Beiträge: 106
Bedankt: 78
Meisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt PunkteMeisterroper leckt gerne myGully Deckel in der Kanalisation! | 138768 Respekt Punkte
Standard

Zitat:
Zitat von slahn Beitrag anzeigen
Übrigens, wird auch dein Zufallszahl zu früh initialisiert. Dadurch muss dein Spieler immer wieder die selbe Zahl erraten, außer er beendet das Spiel komplett und startet es neu ...
davon bin ich auch schon ausgegangen aber als ich dann mal in einem früheren testlauf die wiederholung gestartet hab, kam eine andere zahl, warum auch immer !!
__________________

[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
Meisterroper ist offline   Mit Zitat antworten
Ungelesen 14.12.12, 16:50   #5
derbender123
Anfänger
 
Registriert seit: Jan 2012
Beiträge: 6
Bedankt: 0
derbender123 ist noch neu hier! | 0 Respekt Punkte
Standard

might not been...

heist doch kann aber muss nicht ...

einfach einmal =0 oä setzen dann wars das
derbender123 ist offline   Mit Zitat antworten
Ungelesen 14.12.12, 19:53   #6
Rutnoc
Anfänger
 
Registriert seit: Jun 2012
Beiträge: 1
Bedankt: 0
Rutnoc ist noch neu hier! | 0 Respekt Punkte
Standard

Hi,

btw würde ich in Deiner letzten Abfrage statt "while (spielversuch.equals("ja")|| spielversuch.equals("Ja"));"

eher folgendes schreiben:
"while (spielversuch.toLowerCase().equals("ja"));"

So hast Du zusätzlich noch die Fälle "JA" und "jA" abgedeckt


Viel Spass weiterhin mit java

greets
Rutnoc
Rutnoc ist offline   Mit Zitat antworten
Ungelesen 17.12.12, 18:29   #7
4gent3004
Anfänger
 
Registriert seit: Dec 2012
Beiträge: 1
Bedankt: 0
4gent3004 ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von Rutnoc Beitrag anzeigen
Hi,

btw würde ich in Deiner letzten Abfrage statt "while (spielversuch.equals("ja")|| spielversuch.equals("Ja"));"

eher folgendes schreiben:
"while (spielversuch.toLowerCase().equals("ja"));"

So hast Du zusätzlich noch die Fälle "JA" und "jA" abgedeckt


Viel Spass weiterhin mit java

greets
Rutnoc
das wollte ich auch anmerken als ich das oben grad gelesen hab
4gent3004 ist offline   Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 Uhr.


Sitemap

().