else without if

  • Hallo,


    ich bin gerade dabei Java zu lernen und komme bei dieser Übungsaufgabe nicht weiter. Das Programm soll überprüfen ob sich bei der Eingabe um ein Schaltjahr handelt. Für die Überprüfung gilt folgendes:
    Ist die Jahreszahl durch 4 teilbar, dann ist es ein Schaltjahr, außer die Jahreszahl ist gleichzeitig auch durch 100teilbar, dann ist das Jahr kein Schaltjahr - es sei denn, die Jahreszahl ist gleichzeitig auch durch 400 teilbar, dann ist es doch wieder ein Schaltjahr


    /* Schaltjahr: Das Programm überprüft ob das eingegebene Jahr
    * ein Schaltjahr ist.
    */
    import javax.swing.*;
    public class Schaltjahr {
    public static void main (String[] args) {
    double d;
    String eingabe;
    eingabe = JOptionPane.showInputDialog("Gib das Jahr ein ");
    d = Double.parseDouble(eingabe);
    if ((d % 4 == 0) & (d % 100 == 0) && (d % 400 = 0) ) {
    JOptionPane.showMessageDialog(null,"Es ist ein Schaltjahr");
    } else {
    if ((d % 4 == 0) & (d % 100 == 0) )) {
    JOptionPane.showMessageDialog(null, "Es ist kein Schaltjahr");
    }
    } else {
    if (d % 4 == 0) {
    JOptionPane.showMessageDialog(null, "Es ist ein Schaltjahr");
    }
    }
    }
    }


    Jedoch kann ich das Programm noch nicht starten da folgende Fehler auftreten:
    D:\Java\Programme\JavaUebung03>javac Schaltjahr.java
    Schaltjahr.java:16: error: illegal start of expression
    if ((d % 4 == 0) & (d % 100 == 0) )) {
    ^
    Schaltjahr.java:19: error: 'else' without 'if'
    } else {
    ^


    2 errors

  • if ((d % 4 == 0) && (d % 100 != 0) | | (d % 4 ==0) && (d % 100 == 0) && (d % 400 == 0) ) {JOptionPane.showMessageDialog(null,"Es ist ein Schaltjahr");
    }else{
    JOptionPane.showMessageDialog(null, "Es ist kein Schaltjahr");
    }

  • Ich würde die if anweisungen etwas leserlicher gestalten.


    Java
    1. if ((jahr % 4 == 0 && jahr % 100 != 0)
    2. || jahr % 400 == 0)
    3. System.out.println(jahr + " ist ein Schaltjahr!");
    4. else
    5. System.out.println(jahr + " ist kein Schaltjahr!");
    6. }

    so ist es einfacher zu lesen ^^

  • dein konstrukt ist (grob vereinfacht) if(...) { ... } else {...} else{...}


    zweimal else darf nicht kommen.


    überleg dir auch mal, ob das nicht besser geht mit den bedingungen, sollte mit einem if-else gehen, du hast ja nur 2 fälle.
    überleg mal...

    Dieser Beitrag wurde noch nie editiert, zuletzt von »hangman« (Heute , 13:37)



    1355?mode=raw


    Skill ist, wenn Luck zur Gewohnheit wird