Mal wieder ein Problem mit If / Else

Kyo

Mitglied
Hallo erstmal,

Bin grad dabei meinen Code wieder ein wenig zu erweitern. (Es geht einfach um einen einfachen Dialog zwischen Nutzer und Programm).

Java:
package training;

import java.io.*;

public class Training  // Definiert die Klasse
{
    public static void main (String[]args ) 
            throws IOException       
    {     
        BufferedReader bin = new BufferedReader (
                             new InputStreamReader (System.in));
        System.out.println ("Hallo!");
        System.out.println ("Ich heiße Java und du? ");
        String name = bin.readLine();  // Liest die Eingabe                                 
        System.out.print ("Ahh genau " +name);
        System.out.println (" ... hätte ich ja fast vergessen :-)");
        System.out.println ("Und wie alt bist du noch gleich? ");
        int age = Integer.parseInt(bin.readLine());  // Weist der Variable "age" das eingegebene Alter zu
        if (age >= 18)     // Überprüft ob das eingegebene Alter = oder < 18 ist
        {
            System.out.println ("Dann rede ich dich jetzt mal besser mit Sie an.");
            System.out.println ("Haben Sie denn villeicht Lust auf ein Ratespiel?");
            boolean antwort1 = Boolean.parseBoolean(bin.readLine());
            boolean ja = true;
            boolean nein = false;
            if (antwort1 = true)
            {
                System.out.println ("Okay hier sind die Regeln... ");
            }
            else 
            {
                System.out.println ("Okay dann eben nicht... Ich muss eh wieder gehen.");
                System.out.println ("Tschüssi, hat Spaß gemacht!");
            }
               
        }
        else
        {
            System.out.println ("Dann werde ich dich wohl weiter mit Du anreden okay :-).");
            System.out.println ("Hast du denn villeicht Lust auf ein Ratespiel? ");
            boolean antwort1 = Boolean.parseBoolean(bin.readLine());
            boolean ja = true;
            boolean nein = false;
            if (antwort1 = true)
            {
                System.out.println ("Okay hier sind die Regeln... ");
            }
            else 
            {
                System.out.println ("Okay dann eben nicht... Ich muss eh wieder gehen.");
                System.out.println ("Tschüssi, hat Spaß gemacht!");
            }
                
        }
        
    }
}

Im Augenblick versuche ich das Programm dazu zu bringen das es mich fragt ob ich eventuell ein Ratespiel spielen würde.
Klappt eigentlich auch soweit, nur das wenn ich "nein" eintippe trotzdem die "ja" ausgabe kommt...
--> "Okay, Hier sind die Regeln!"


Hier der Teil auf den es sich bezieht rausgenommen:

Java:
  System.out.println ("Haben Sie denn villeicht Lust auf ein Ratespiel?");
            boolean antwort1 = Boolean.parseBoolean(bin.readLine());
            boolean ja = true;
            boolean nein = false;
            if (antwort1 = true)
            {
                System.out.println ("Okay hier sind die Regeln... ");
            }
            else 
            {
                System.out.println ("Okay dann eben nicht... Ich muss eh wieder gehen.");
                System.out.println ("Tschüssi, hat Spaß gemacht!");
            }

Ich danke euch schonmal im Vorraus für jegliche Hilfe 😉

Kyo
 
Zuletzt bearbeitet:
Java:
            if (antwort1 == true)
            {
                System.out.println ("Okay hier sind die Regeln... ");
            }
Du hast nur ein = Zeicchen verwendet und das artet in eine Zuweisung aus und nicht in ein Vergleich.
 
Also muss ich statt dem

Java:
if (antwort1 = true)
{
        System.out.println ("Okay hier sind die Regeln...");
}

ein == verwenden ?

Kyo
 
Der obere Code differiert von dem unteren... Oben sollte es richtig sein, zumal schöner wäre:
Java:
 if (antwort1) {
                System.out.println ("Okay hier sind die Regeln... ");
 }

mfg, Christian

Edit: Ja, entweder ein "== true" oder einfach nur wie bei mir im Code oben.
"if (antwort1 == true)" ist das gleiche wie "if (antwort1)"
 
Zuletzt bearbeitet:
Habs jetzt so wie du gemacht:

Java:
System.out.println ("Haben Sie denn villeicht Lust auf ein Ratespiel?");
            boolean antwort1 = Boolean.parseBoolean(bin.readLine());
            boolean ja = true;
            boolean nein = false;
            if (antwort1)
            {
                System.out.println ("Okay hier sind die Regeln... ");
            }
            else 
            {
                System.out.println ("Okay dann eben nicht... Ich muss eh wieder gehen.");
                System.out.println ("Tschüssi, hat Spaß gemacht!");
            }

Jedoch bleibt das Problem, dass wenn ich "ja" eingebe es denkt ich hätte "nein" geschrieben und den else - Text ausgibt... =(

Kyo
 
Kein wunder du musst auch mit "true" antworten und nicht mit "ja", weil er davon ausgeht, dass wenn du irgendwas anderes außer "true" schreibst false sein soll.
Mit "true" geht es auch 😉
 
Ok, so geht es nicht. Hab es jetzt mal das Boolean durch einen String ersetzt.
Java:
            System.out.println ("Dann rede ich dich jetzt mal besser mit Sie an.");
            System.out.println ("Haben Sie denn villeicht Lust auf ein Ratespiel?");
            String antwort1 = bin.readLine();
            if (antwort1.equals("ja"))
            {
                System.out.println ("Okay hier sind die Regeln... ");
            }
            else 
            {
                System.out.println ("Okay dann eben nicht... Ich muss eh wieder gehen.");
                System.out.println ("Tschüssi, hat Spaß gemacht!");
            }
So sollte es klappen.

mfg, Christian
 
Da du ja scheinbar gerade anfängst mit lernen, sollte man dir vlt auch direkt den Tipp geben sich in die Javadocs einzuarbeiten, dann hättest du das Problem nämlich direkt selbst lösen können:
Boolean (Java Platform SE 6)

Parses the string argument as a boolean. The boolean returned represents the value true if the string argument is not null and is equal, ignoring case, to the string "true".

Example: Boolean.parseBoolean("True") returns true.
Example: Boolean.parseBoolean("yes") returns false.

daher ist hartzie`s Aussage auch etwas gewagt 😀
("dass wenn du irgendwas anderes außer "true" schreibst false sein soll.")
 
Ahaha ^^

Man man man wenn man nicht einmal richtig hingucken kann xD
Vielen Dank Euch!

Gibt es denn ne möglichkeit das ich auch Ja / Nein eingeben kann statt True / False ? (mit Boolean) ^^

Thx habt ihr beiden trotzdem =D

Kyo
 
Java:
            Boolean antwort1;
            if (bin.readLine().equals("ja")) {
                antwort1 = true;
            } else {
                antwort1 = false;
            }
            if (antwort1)
            {
                System.out.println ("Okay hier sind die Regeln... ");
            }
            else 
            {
                System.out.println ("Okay dann eben nicht... Ich muss eh wieder gehen.");
                System.out.println ("Tschüssi, hat Spaß gemacht!");
            }

mfg, Christian
 

Neue Themen


Zurück
Oben