Java if Problem?

... komplette Frage anzeigen

4 Antworten

Nun:
Innerhalb der Klammern bei if muss eine Boole'sche Anweisung stehen, bzw es muss ein boole'scher wert ermittelbar sein:
true oder false

ein "Ja" kann nicht true oder false sein.
Durch Vergleiche käme man auf einen solchen wert. (Vergleichen mit ==, bsp: (1 == 1 wäre true; 1 == 2 wäre false). mit == kannst/solltest du allerdings nur primitive datentypen vergleichen und keine Objekte.

Da du einen String vergleichen möchtest, kannst du das schonmal nicht mit == machen. du benötigst dann eine Methode namens equals().

Wir haben jetzt schonmal zwei Dinge geklärt:
1) Ein Boole'scher Ausdruck fehlt dir
2) Bei Objekten verwendet man die Methode equals(), damit korrekt geprüft werden kann .

Jetzt fehlt nur noch, mit was du vergleichen willst:
Du brauchst eine Eingabe.
Die Scanner-Klasse ist für eine simple Eingabe genügend.
Wir erstellen also eine Objekt von Scanner und wir wollen, dass ein String eingegeben werden kann:
Scanner scan = new Scanner(stdin);
String eingabe = scan.next();

Durch das scan.next() ist der Benutzer nun in der Lage einen String einzugeben (bei next() nur bis zum nächsten leerzeichen).

Jetzt wissen wir, was der Benutzer eingegeben hat und müssen nur noch daraus einen boole'schen ausdruck für die if abfrage generieren:
eingabe.equals("Ja") wäre die Lösung.

if (eingabe.equals("Ja)){...}

Ich hoffe du verstehst die Antwort und weißt nun das Problem.
Schaue dir doch mal an, was die Scannerklasse sonst noch alles kann (schau in die Doku (googel es)), damit du Eingaben beherrschst. Ebenso schaue dir nochmal in Tutorials an, was ein boole'scher Ausdruck ist und wie if funktioniert.

Viel Spaß

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von SirNik
24.02.2017, 19:54

Das stdin bei Scanner() musst du durch System.in ersetzen ^^

0

1. Benutzt Du keinen Java-Editor ?

2. Da sind so viele Fehler drin, da musst Du Dir Java noch mal näher anschauen. Es gibt gute Bücher, die Dir Schritt für Schritt Java beibringen. Bestimmt gibts online auch sowas.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Marlukan
24.02.2017, 19:53

Ich hoffe, wir habe jetzt nicht Deine HA gemacht. Mein Sohn hat es für Dich mal eben schnell programmiert.

import java.util.*;
public class bistdudumm {

public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print("Bist du dumm (Ja/Nein): ");
String s = sc.nextLine();
String a = "Nein";
String b = "Ja";
String c = "JA";
if (s.equals(b) || s.equals(c)) {
System.out.println("Da sind wir gleicher Meinung!! xD");
} // end of if

else {
System.out.println("Nein. Du bist dumm! xD");
} // end of if-else
}
}

Viel Spaß und Erfolg noch beim weitertüfteln.

1
Kommentar von SirNik
24.02.2017, 19:55

gailer-net empfehle ich auch

0

Du bist Neuling..

incompatible types: String cannot be converted to boolean 

Du musst vorher die Antwort von der Standardeingabe einlesen.
Da ich aktuell nicht mit Java arbeite, habe ich einen Code aus den Netz hier:

InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
System.out.print("Gib was ein: ");
String eingabe = br.readLine();
System.out.println("Du hast " + eingabe + " eingegeben.");

Du hast dann die Variable eingabe die Du dann gegen den String 'Ja' vergleichen kannst

Hoffe geholfen zu haben.

Antwort bewerten Vielen Dank für Deine Bewertung

Der Fehler sagt genau was das Problem ist: Er weiß nicht, was if("Ja") bedeuten soll. Du hast dir das wahrscheinlich so hergeleitet:

"Bist du Dumm?"
WENN "Ja", DANN "Da sind wir ja gleicher Meinung :D"
SONST "Nein, du bist dumm. Ende der Disskusion."

So funktioniert das aber nicht beim Programmieren. Er schreibt "Bist du Dumm?" (System.out.println("Bist du Dumm?");) und du willst, dass du "Ja" antworten kannst.

Der Computer versteht das aber nicht so wie du das eingegeben hast. Er sieht nur "Schreibe 'Bist du Dumm?'" und versteht nicht, dass du den Nutzer was fragen will. Du musst ihm also sagen, dass er den Benutzer fragen soll.

Deshalb macht auch das if("Ja") keinen Sinn. Der denkt sich: Was "Ja"? Was soll "Ja" sein? (Immer daran denken, dass der Computer dumm ist und du ihm alles sagen musst)

Korrekt muss es so ablaufen (Ich schreibe dir keinen Code hin; schaue dir mal ein Tutorial an)

SCHREIBE "Bist du dumm?"
NUTZER SOLL WAS EINGEBEN
WENN (EINGABE GLEICH "Ja") DANN
SCHREIBE "Da sind wir ja gleicher Meinung :D"
SONST
SCHREIBE "Nein, du bist dumm. Ende der Diskussion."

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?