php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen : [Java] Problem mit Schleife


patlan
03-05-2006, 12:53
Hallo,

ich hab gerade ein kleines Programm geschrieben in der folgender Programmteil drankommt:

System.out.println("Noch eine Person einfügen? [j/n]");
String frage = scanner.next();

if (frage == "j"){
status = true;
status2 = false;
}
if (frage == "n"){
status = false;
status2= false;
}
if (frage != "j" & frage != "n") { System.out.println("Falschen Eingabe!");}

Leider ist nun das Problem vorhanden, dass z.B. bei j oder n Eingabe, das Programm nicht in die entsprechende Schleife eintritt sondern jedes mal in die letzte Schleife eintritt. Obwohl bei einer Probeausgabe in frage der jeweilige Buchstabe steht. Weiß jemand wo hier der Fehler liegt?

MaxP0W3R
04-05-2006, 12:26
Versuchs mal mit der equals-Methode, gibt da mit dem != Operator als Bugs in Java.

Ausserdem könnte man da mal über den einsatz von char nachdenken (charAt auf erste Position, würde auch ja und nein korrekt abfangen)

cya max

Slava
07-05-2006, 20:18
AUSSER DEM
ich glaube nicht das du in deiner if verzweigung
if (frage != "j" & frage != "n")
wirklich ein bineres & operator einsätzen möchtest

aimbot
07-05-2006, 21:52
auserdem würde ich da eher switch/case benutzen

schlumo
28-06-2006, 18:54
du vergleichst in deinen schleifen jeweils einen string mit nem char, das geht normalerweise nicht...
so sollte es gehn

System.out.println("Noch eine Person einfügen? [j/n]");
String frage = scanner.next();
frage = frage.toLowerCase(); //somit auch großbuchstaben miteingeschlossen
char f = frage.charAt(0); //zeichen an stelle 0 in char einlesen

if (f == "j") //char mit char vergleichen ;)
{
status = true;
status2 = false;
};
if (f == "n"){
status = false;
status2= false;
};
if (f != "j" & f != "n")
{
System.out.println("Falschen Eingabe!");
};



edit: ok sehe gerade dass das schon länger her ist^^

-archiv-
--

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:51 Uhr.