Hallo Forum,
hier ist erstmal der komplete Code:
es soll folgendes mit dem Programm bezweckt werden:
In einer Endlosschleife soll ein Operator eingegeben werden (nur ein Zeichen erlaubt).
Die einzige Möglichkeit das Programm zu beenden sollte in diesem Code sein:
Jede andere Eingabe außer einem arithmetischen Operator sollte eine Fehlermeldung anzeigen
ebenfalls wird ein Hinweis ausgegeben wenn mehr als nur ein Zeichen eingegeben wird:
Mein Problem:
Es wird, unabhängig von meiner Eingabe, immer das Programm abgebrochen.
Eclipse zeigt ebenfalls keine Fehler.
Jemand ne Lösung?
Im OriginalCode wird auch ein Stringvariable (ausgabe) angegeben, diese wird jedoch im gesamten Code nicht benützt. Deshalb habe ich das gleich ausgelassen.
hier ist erstmal der komplete Code:
Java:
package endlosschleifemitwhile;
import javax.swing.JOptionPane;
public class EndlosSchleifeMitWhile
{
public static void main(String[] args)
{
char zeichen = '-';
int wert1 = 45, wert2 = 10, resultat = 0;
String eingabe;
while (true)
{
if((eingabe = JOptionPane.showInputDialog("Geben Sie einen arithmetischen Operator ein:" +
"\n(die Eingabe von \"!\" beendet das Programm)")) == null || eingabe.equals("!"));
{
JOptionPane.showMessageDialog(
null,
"Das Programm wurde beendet.",
"ENDE",
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
if (eingabe.length() != 1)
JOptionPane.showMessageDialog(
null,
"Sie dürfen nur ein Zeichen eingeben",
"EINGABEFEHLER",
JOptionPane.WARNING_MESSAGE);
else
{
zeichen = eingabe.charAt(0);
if (zeichen == '+' || zeichen == '-' || zeichen == '*' || zeichen == '/' || zeichen == '%')
{
switch (zeichen)
{
case '+': resultat = wert1 + wert2; break;
case '-': resultat = wert1 + wert2; break;
case '/': resultat = wert1 + wert2; break;
case '%': resultat = wert1 + wert2; break;
case '*': resultat = wert1 + wert2; break;
}
JOptionPane.showMessageDialog(
null,
"Das Resulat von " + wert1 + " und " + wert2 + " ist " + resultat + ".",
"RESULTAT",
JOptionPane.PLAIN_MESSAGE);
}
else
{
JOptionPane.showMessageDialog(
null,
"Sie haben ein falsches Zeichen eingeben",
"EINGABEFEHLER",
JOptionPane.ERROR_MESSAGE);
}
}
}
}
}
es soll folgendes mit dem Programm bezweckt werden:
In einer Endlosschleife soll ein Operator eingegeben werden (nur ein Zeichen erlaubt).
Die einzige Möglichkeit das Programm zu beenden sollte in diesem Code sein:
Java:
if((eingabe = JOptionPane.showInputDialog("Geben Sie einen arithmetischen Operator ein:" +
"\n(die Eingabe von \"!\" beendet das Programm)")) == null || eingabe.equals("!"));
{
JOptionPane.showMessageDialog(
null,
"Das Programm wurde beendet.",
"ENDE",
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
Jede andere Eingabe außer einem arithmetischen Operator sollte eine Fehlermeldung anzeigen
Java:
else
{
JOptionPane.showMessageDialog(
null,
"Sie haben ein falsches Zeichen eingeben",
"EINGABEFEHLER",
JOptionPane.ERROR_MESSAGE);
}
ebenfalls wird ein Hinweis ausgegeben wenn mehr als nur ein Zeichen eingegeben wird:
Java:
if (eingabe.length() != 1)
JOptionPane.showMessageDialog(
null,
"Sie dürfen nur ein Zeichen eingeben",
"EINGABEFEHLER",
JOptionPane.WARNING_MESSAGE);
Mein Problem:
Es wird, unabhängig von meiner Eingabe, immer das Programm abgebrochen.
Eclipse zeigt ebenfalls keine Fehler.
Jemand ne Lösung?
Im OriginalCode wird auch ein Stringvariable (ausgabe) angegeben, diese wird jedoch im gesamten Code nicht benützt. Deshalb habe ich das gleich ausgelassen.