[Java] Scanner abfrage

ChristianS_

Newbie
Registriert
Apr. 2015
Beiträge
2
Moin,

ich wollte eine Scanner abfrage in einen kleinen Script/Programm machen aber Irgendetwas stimmt nicht und ich bin nicht so erfahren könnt ihr mit weiter helfen?

Scanner.PNG



Danke in voraus
 
du machst keinen Vergleich sondern eine Zuweisung in deiner if. Da gehören zwei == hin
Zudem ist sc nicht definiert, weil du es oben scan nennst.
Dann liest du einen Integerwert ein und keinen String.
Dann willst du die Eingabe mit einem String vergleichen, hast ihn aber nicht in Anführungszeichen gesetzt.
Der Strichpunkt dahinter hat da überhaupt nichts verloren, weil du damit die komplette Sache abschließt.
Du hast im Grunde alles falsch gemacht, was man falsch machen kann. Wahrscheinlich sind noch mehr Fehler drin, aber ich hab keinen Bock noch mehr zu suchen.

Mal ehrlich, lies dich erst mal ein, denn das sind Fehler die man auch selber herausfinden kann, wenn man schlicht ein wenig Eigeninitiative zeigt. Sagen dir doch die Fehlermeldungen schon, die du offensichtlich nicht gelesen hast.
Und an den Fehlern sieht man, dass du dich bisher null mit der Java-Syntax auseinander gesetzt hast. Lies mal "java ist auch eine Insel"
 
Zuletzt bearbeitet: (typo)
rg88 schrieb:
du machst keinen Vergleich sondern eine Zuweisung in deiner if. Da gehören zwei == hin
...
String-Vergleiche allerdings mit .equals() und nicht mit ==, ansonsten kann ich mich rg88 nur anschließen.
 
@Infi: Jepp. ich hab Anfangs noch nicht so genau drüber geschaut und hatte noch Integer von der Zeile drüber im Kopf ^^. Ist ja wie ein Suchspiel "Finde alle Fehler und errate dann noch, was eigentlich die Aufgabe des Codes ist" ;)
 
@rg88: Richtig, sollte auch nur als Hinweis für den TE dienen, da dies wohl der nächste Stolperstein wäre sobald die groben syntaktischen Fehler ausgeräumt sind.
 
Um das nochmal kurz die Fehler zusammenzufassen:

(1. Variablenbezeichner sollten nicht groß geschrieben werden. "Codewort" -> "codewort", "Test" -> "test")
2. Du hast "sc" statt "scan" geschrieben, um auf den Scanner zurückzugreifen, wobei du keine Variable "sc" deklariert hast.
3. Du hast eine Zuweisung in deine if-Abfrage reingesetzt. In den Klammern hinter einem if/else muss immer ein Ausdruck stehen, der zu einem boolean ausgewertet wird. Dh. in deinem Fall wäre ein "==" (prüft Objekte auf Identität, primitive Datentypen (int, bool, char, ...) auf Gleichheit) notwendig.
4. Es wird immer die erste Anweisung respektive der erste Anweisungsblock nach einem if/else ausgeführt. Da du ein Semikolon nach dem if geschrieben hast, wird dieses (die leere Anweisung) ausgeführt, wenn die Bedingung zutrifft. Da du danach noch einen Anweisungsblock geschrieben hast, erkennt der Compiler kein if auf das sich das else bezieht. Das Semikolon muss weg.

Im Endeffekt würde das so aussehen:
Code:
Scanner scan = new Scanner(System.in);
int codewort = scan.nextInt();

if (codewort == test) {
    System.out.println("Korrekt, Kontakt: Person");
} else {
    System.out.println("Inkorrekt");
}

@Infi Er vergleicht ja überhaupt nicht zwei Strings, sondern zwei Ganzzahlen. Ein Scanner kann das automatisch parsen (deshalb ja "nextInt()").
 
Zuletzt bearbeitet:
Der Variablenname und sein vermeintlicher Vergleich deuten aber recht eindeutig auf einen String hin. #DennSieWissenNichtWasSieTun
 
Zurück
Oben