Frage von goveganyolo, 39

Schleifen-Problem bei Java!?

Hi Leute, Ich weiß ich nerve mit meinen Fragen zu Java aber eine hätte ich dann doch noch:

ich möchte das ein showInputDialog solange nach dem alter von XY fragt bis die Eingabe mit 14 (mein Alter) übereinstimmt. Das könnt ich doch theoretisch mit einer do Schleife machen weil es ja sowieso einmal ausgeführt werden muss. import javax.swing.JOptionPane;

public class Schleifenlernen {

public static void main(String[] args) {

    int Zahl;
    String eingabe = JOptionPane.showInputDialog("Gebe das Alter von Justin ein!");
     Zahl = Integer.parseInt(eingabe);
     
     do {
         
         eingabe = JOptionPane.showInputDialog("Gebe das Alter von Justin ein!");
         
     } while(Zahl == 14);
     
     
     JOptionPane.showMessageDialog(null, "Du hast das richtige alter eingegeben!");





    }

}

Aber das funst iwie nicht so richtig? Was mache ich falsch?

Das Buch mit dem ich im moment lernen ist nicht so der Börner aber ich besorge mir bald ein neues bis dahin muss ich die liebe GuteFrage.net Gemeinde fragen :D

Antwort
von CaryllRunes, 23

Hey ~ :)
Ich bin leider selbst Anfänger, will aber mal versuchen dir zu helfen und meine gute Tat des Tages vollbringen. :)

Ich glaube, sobald du in die do-Schleife eintrittst und über das JOptionPane die eingabe einliest, wandelst du die nicht mehr in ein Integer um. Das machst du, so weit ich sehe, ein mal oben und nicht mehr in der Schleife, sodass versucht wird eine String mit einem Integer zu vergleichen. Versuch doch mal eine weitere .parseInt() in deine Schleife zu legen. Ich glaube, dann müsste es gehen.
P.S: Ich glaube deine Schleife läuft "while Zahl == 14", aber willst du mit 14 nicht aussteigen? Dann musst du, glaube ich =! oder so (ich bin mir mit dem Operator gerade nicht so sicher) schreiben.

Wie gesagt, leider mehr gut geraten, als gewusst. Aber wenn es funktioniert, lass es mich wissen, okay? :)

Grüße,
Caryll.

Kommentar von goveganyolo ,

Du hattest Recht! Also das mit dem != (nicht gleich) ist richtig das war einfach nur Dummheit von mir  aber du hattest mit dem umwandeln in einen Integer recht! Vielen Dank! Und viel Erfolg noch mit Java!!

Kommentar von CaryllRunes ,

Hey, danke und gerne! Ebenso viel Glück! :)

Antwort
von safur, 16

Da sind schon mal zwei Fehler.

Du wandelst nur einmal in Zahl um. Mit dieser Zahl geht er in die Schleife. Nehmen wir an ich hätte 10 getippt, dann marschieren wir in die Schleife, der Input öffnet sich erneut, nun frägst du "10 == 14" --> falsch, also kommt wieder der Input. Das wäre eine Endlosschleife denn unabhängig was ich eingebe verwendest du diese Information nicht.

Du könntest es mal (ungetestet) so versuchen.

Es genügt die Schleife. Du gehst rein und frägst nach dem Alter. Dieses wandelst du in Zahl um. Nun kommt die Abfrage Zahl ungleich 14. Wenn ja, bleib in der Schleife. Wenn Nein verlässt er die Schleife.

int Zahl;
String eingabe;
    
do {
  eingabe = JOptionPane.showInputDialog("Gebe das Alter von Justin ein!");
  Zahl = Integer.parseInt(eingabe);      
} while(Zahl != 14);
Antwort
von xGlumi, 15

"Das funzt nicht" ist so ziemlich die schlechteste Problembeschreibung die es gibt (Nur so als Randbemerkung)

WAS funktioniert denn nicht?
Könntest du die Zeile/den Error benennen?

Wäre hilfreich (Mekren fürs nächste mal bitte)

Die Antwort von CaryllRunes ist richtig.

MFG xGlumi

Antwort
von johdl, 9

Du wandelst genau einmal die Eingabe in einen Integer um und prüfst daher dauerhaft den selben Wert. Die Parse-Funktion muss auch in der Schleife vorhanden sein.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten