Problem mit Code

ruubi

Mitglied
Ich hab einen Problem mit dem Code meines Vokaltests, egal welchen Buchstaben ich eingebe, es kommt immer der true boolean Wert "c ist ein Vokal", auch wenn der eingegebene Buchstabe kein Vokal ist. Hier ist der Code:

Java:
import javax.swing.JOptionPane;

public class Vokaltest {
    public static void main(String[] args) {
    String eingabe;
    char c;
    boolean istVokal;
    eingabe = JOptionPane.showInputDialog("Geben sie einen Buchstaben ein: ");

    c = eingabe.charAt(0);
    if (c == 'a') {
        istVokal = true;
    } else {
        if (c == 'e') {
            istVokal = true;
        } else {
            if (c == 'i') {
                istVokal = true;
            } else {
                if (c == 'o') {
                    istVokal = true;
                } else {
                    if (c == 'u') {
                        istVokal = true;
                    } else {
                        istVokal = false;
                    }
                }
            }
        }
    }
    if (istVokal = true) {
       JOptionPane.showMessageDialog(null, c + " ist ein Vokal!");
    } else {
    if (istVokal = false)
           JOptionPane.showMessageDialog(null, c + " ist kein Vokal!");
    }
  }
}
 
Zuletzt bearbeitet von einem Moderator:
Hinweis: '=' ist eine Zuweisung und kein Vergleich in Java
Stimmt da liegt der Fehler. Aber abgesehen davon ist das ganze sehr umständlich formuliert.
Sieh Dir mal diese Variante an.
Java:
import javax.swing.JOptionPane;

public class Vokaltest {
    public static void main(String[] args) {
        String input = null;
        do {
            input = JOptionPane.showInputDialog("Geben sie einen Buchstaben ein: ");
        } while (input == null || input.length() == 0);

        char c = input.charAt(0);
        String tmp = isVocal(c) ? "" : "k";
        JOptionPane.showMessageDialog(null, c + " ist " + tmp + "ein Vokal!");
    }

    public static boolean isVocal(char c) {
        char[] vocals = { 'a', 'e', 'i', 'o', 'u' };
        for (char cc : vocals) {
            if (c == cc)
                return true;
        }
        return false;
    }
}
 

Zurück
Oben