If Abfrage arbeitet nicht so wie ich das will :)

  • Guten Tag,
    ich habe mir ein Buch gekauft, dass einen die Grundlagen von Java beibringt.
    Ich habe ein kleines Zahlenratespiel entwickelt.
    Man gibt eine Zahl zwischen 0 - 100 ein und das System entwickelt eine Random zahl zwischen 0 - 100.
    Ich möchte das Programm weiter entwickeln und habe eine If abfrage eingebaut, die Abfragen soll, ob die Angegebene Zahl auch wirklich zwischen 0 - 100 liegt.
    Wenn ich das Programm nun ausführe und eine Zahl z.B: 2459 eingebe (Alles über 100), gibt er aber trotzdem die Random Zahl raus.
    Ich zeige mal ein kleinen Abschnitt vom Code.
    //edit: Tut mir leid, bei mir funktionier die Funktion "Code einfügen" nicht. :(


    if (tipp1 < 100) {


    while(true) {
    s1.raten(); //Die getippte Zahl
    sn1.spielernameeingabe(); //Spielername


    tipp1 = s1.zahl; //Die getippte Zahl
    name1 = sn1.spielername; //Spielername
    System.out.println( name1 + " tippte " + tipp1);


    if (tipp1 == zielZahl) {
    s1hatRecht = true;
    }


    if (s1hatRecht){
    System.out.println("Wir haben einen Gewinner!");
    System.out.println("Hat " + name1 + " richtig geraten?" + s1hatRecht);
    System.out.println("Das Spiel ist zuende.");
    break;
    } else {
    System.out.println("Tut mir leid. Sie haben nicht die richtige Zahl getippt :( ");
    System.out.println("Die richtige Zahl war: " + zielZahl);
    System.out.println("Du musst es nochmal versuchen.");
    System.out.println(" ");
    System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    System.out.println(" ");
    }


    }


    } else {
    System.out.println("Die Zahl liegt nicht zwischen 0 und 100!");
    System.out.println("Gib einfach nochmal die Zahl ein, aber dieses mal zwischen 0 und 100 :)");
    }

  • //Edit: Ja stimmt, Klammern sind richtig, mach das dochmal in eine Codebox..anstatt den so schläd dahin zu posten :rolleyes:


    Aber, mach doch einfach n Print-Debug und schau, was dir ausgegeben wird für tipp1 :rolleyes:


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

    Einmal editiert, zuletzt von Kaliber ()

  • Ein Codefeld kannst du machen, indem du auf den Button mit der Raute (#) klickst oder [.code]blablabla[./code] schreibst (jeweils ohne den Punkt).


    Edit: Du hast da einen Denkfehler drin:



    Es muss erst die Endlosschleife kommen, dann muss tipp1 vom Benutzer gesetzt werden und DANN kannst du es überprüfen. So wie es jetzt ist, wird die Abfrage einmal nach starten des Programmes aufgerufen, wobei tipp1 da noch gar nicht gesetzt wurde und dann beginnt das eigentliche Programm, aber die Abfrage wird nie wieder durchlaufen.

    2 Mal editiert, zuletzt von oernqsvfu_fgvaxg ()

  • Beim Debug kommt einfach das ganz normale Script ohne die neue If-Abfrage.
    Also ich habe 3 Klassen.
    In der ersten wird das Spiel gestartet
    In der zweiten wird die Zahl, die der Spieler rät und der Name des Spielers eingegeben.
    In der dritten kommt alles zusammen. Dort wird die Random Zahl berechnet und halt überprüft, ob der Spieler richtig getippt hat.
    Dort habe ich auch die If Abfrage gemacht.
    Also Tipp1 wird in der zweiten Klasse eingegeben und in der dritten Klasse überprüft, ob die Zahl auch zwischen 0 - 100 liegt.


    //edit: Ah daran lag der Fehler @He3lixxx:
    danke sehr :)