Ich wollte mal nachfragen, wie man das am besten löst, wenn man eine Dialogbox startet und nur bestimmte Werte akzeptiert.
Und wenn man einen falschen Wert eingibt (Zahl und/oder Buchstaben), dann soll die Dialogbox automatisch neu gestartet werden für eine Neueingabe.
Bisher habe ich das immer mit einer do-while Schleife realisiert im einfachsten Fall.
Da würde er mir die Dialogbox solange aufrufen, bis ich eine 1 eingegeben habe. Das ist natürlich zu einfach.
Wie mache ich das für den Anwendungsfall wie oben beschrieben? Wenn bspw. Zahlen von 1-10 gültig sind und alles andere zur Neueingabe führt und eine 0 zum Programmabbruch.
Bei einem Prof habe ich immer "etwas" von nachfolgender Struktur gesehen, bei der ich aber keine Ahnung habe, wie sie funktioniert mit diesem "boolean ende = true" und while(ende), ende=false etc.
Der Code hier oben ist nicht korrekt, sondern soll nur das grobe Schema widerspiegeln, ich weiß leider auch nicht, wie der in korrekter Ausführung wäre.
Nachtrag:
Wenn ich den Code von ganz ganz oben verwende also mit der do-while Schleife, dann könnte ich das doch auch realisieren wie folgt:
Wenn ich außerhalb des Wertebereichs von 1-10 bin, dann öffnet sich die Box ständig erneut.
Aber trotzdem würde mich das mit dem boolean, ende, true interessieren, wie das funktioniert. Vielleicht ist das ja die bessere Option für solche Angelegenheiten.
Und wenn man einen falschen Wert eingibt (Zahl und/oder Buchstaben), dann soll die Dialogbox automatisch neu gestartet werden für eine Neueingabe.
Bisher habe ich das immer mit einer do-while Schleife realisiert im einfachsten Fall.
Java:
do {
String eing = JOptionPane.showInputDialog("Geben Sie den Wert 1 ein:");
int wert = Integer.parseInt(eing);
}
while(wert!=1)
Da würde er mir die Dialogbox solange aufrufen, bis ich eine 1 eingegeben habe. Das ist natürlich zu einfach.
Wie mache ich das für den Anwendungsfall wie oben beschrieben? Wenn bspw. Zahlen von 1-10 gültig sind und alles andere zur Neueingabe führt und eine 0 zum Programmabbruch.
Bei einem Prof habe ich immer "etwas" von nachfolgender Struktur gesehen, bei der ich aber keine Ahnung habe, wie sie funktioniert mit diesem "boolean ende = true" und while(ende), ende=false etc.
Java:
import javax.swing.*;
public class Neueingabe {
public static void main (String [] args) {
boolean ende = true;
int wert=0;
while(ende) {
String eing = JOptionPane.showInputDialog("Geben Sie einen Wert ein");
wert = Integer.parseInt(eing);
if (wert<=10|wert>0) {
System.out.println("Eingabe ist korrekt und wird weiterverarbeitet");
ende = false;
}
else {
System.out.println("Fehleingabe, bitte neu eingeben.");
}
}
switch(wert) {
case 1:
System.out.println("1 wurde eingegeben");
break;
case 2:
System.out.println("2 wurde eingegeben");
break;
}
}
}
Der Code hier oben ist nicht korrekt, sondern soll nur das grobe Schema widerspiegeln, ich weiß leider auch nicht, wie der in korrekter Ausführung wäre.
Nachtrag:
Wenn ich den Code von ganz ganz oben verwende also mit der do-while Schleife, dann könnte ich das doch auch realisieren wie folgt:
Java:
do {
String eing = JOptionPane.showInputDialog("Geben Sie einen Wert 1-10 eim:");
wert = Integer.parseInt(eing);
}
while(wert>10|wert<0);
Wenn ich außerhalb des Wertebereichs von 1-10 bin, dann öffnet sich die Box ständig erneut.
Aber trotzdem würde mich das mit dem boolean, ende, true interessieren, wie das funktioniert. Vielleicht ist das ja die bessere Option für solche Angelegenheiten.
Zuletzt bearbeitet: