else without if Fehler

Linn

Mitglied
Ich habe folgendes programm geschrieben:

Java:
class verzweigungSchaltjahr {

public static void main ( String [] args ) throws  Exeption {

BufferedReader eingabemaschine =
new BufferedReader ( new InputStreamReader ( System.in ) ) ;

    System.out.println ("Gebe ein beliebiges Jahr ein, dann kann ich dir sagen, ob es ein Schaltjahr ist!");
String strJahreszahl = eingabemaschine.readLine();

    if (jahreszahl % 4 == 0 ) {  
      if (jahreszahl % 100 == 0 ) {  
        if (jahreszahl % 400 == 0 ) {System.outprintln ("Dein ausgewähltes Jahr ist ein Schaltjahr!") ; }; } ; } ;
 else {system.out.println ("Dein eingegebenes Jahr ist kein Schaltjahr!") ; 

     } 
  }
Der Compiler gibt mir dann aber die Fehlermeldung: else without if und ich weiß echt nicht wo mein fehler liegt. Vielleicht bin ich ja zu blöd um ihn zu finden, aber ich habe es echt schon tausendmal gelesen, und weiß echt nicht, was der von mir will... Brauche dringend Hilfe!
P.S.: Das else was der Compiler meint habe ich mal unterstrichen!

Freu mich auf Antworten!:)
 
Zuletzt bearbeitet von einem Moderator:
N

nillehammer

Gast
Aber egal, ob ich die Simikolons wegnehme oder nicht, die Fehlermeldung ist immer noch da...
Dann passt was mit der Klammerung nicht. Jeder Block braucht eine { und am Ende eine } Das else gehört ja wohl hinter alle drei ifs. Rüche Deinen Code richtig ein und Du wirst sehen, wo dir eine Klammer fehlt oder zu viel ist und warum das else an der Stelle falsch steht. Und darüber hinaus braucht man Bedinngungen, die alle eintreffen sollen, nicht mit verschachtelten ifs abzuprüfen hänge sie einfach mit && aneinander. Siehe nachfolgender Code (schön formatiert und coloriert, weil mit Java-Tags gepostet)
Java:
// Verknüpfung mit && ist äquivalent zu nacheinander prüfen mit verschachtelten ifs
// !Vorsicht ich habe die Bedingungen aus Deinem Code übernommen. Glaube aber nicht,
// dass sie korrekt sind, um ein Schaltjahr zu ermitteln
if (jahreszahl % 4 == 0 && jahreszahl % 100 == 0 && jahreszahl % 400 == 0) {
  System.out.println ("Dein ausgewähltes Jahr ist ein Schaltjahr!") ;
}
else {
 System.out.println ("Dein eingegebenes Jahr ist kein Schaltjahr!") ;
}
Wobei, wenn ich mir das anschaue, die von Dir gewählte Bedingungskombination nicht taugt, um ein Schaltjahr zu finden. Da denke noch mal genauer nach.
 
Zuletzt bearbeitet von einem Moderator:

Linn

Mitglied
Okay, also das program sieht jetzt so aus:

Java:
class verzweigungSchaltjahr {
  
  public static void main ( String [] args ) throws  Exeption {
    
    BufferedReader eingabemaschine =
    new BufferedReader ( new InputStreamReader ( System.in ) ) ;
    
    System.out.println ("Gebe ein beliebiges Jahr ein, dann kann ich dir sagen, ob es ein Schaltjahr ist!");
    String strJahreszahl = eingabemaschine.readLine();
    
    if (jahreszahl % 4 == 0 && jahreszahl % 100 == 0 && jahreszahl % 400 == 0) {
      System.out.println ("Dein ausgewähltes Jahr ist ein Schaltjahr!") ;}      ;
    else {System.out.println ("Dein eingegebenes Jahr ist kein Schaltjahr!");} ;
  } 
}

Aber die Fehlermeldung ist immer noch da, nur die, mit Simikolons und so hat er kein problem nur mit dem else...

Aber danke schon mal für eure Antworten, jetzt ist das program wenigstens schon mal übersichtlicher! :D
 
N

nillehammer

Gast
Mäuschen, schau Dir mal gaaaaaaanz laaaaange die Zeilen 12 und 13 an.
 
Zuletzt bearbeitet von einem Moderator:

Linn

Mitglied
Okay, also ich seh das nichts... vielleicht meinst du das ; zwischen der ) und der }? Der Compiler sagt aber, dass die da hin müssen...???:L
 

Linn

Mitglied
OMG! Okay, habs weg gemacht, jetzt gehts auch, also zumindestens macht er das was er machen soll, muss nur noch gucken, ob das ergebniss, was er mir sagt auch wirklich richtig ist! Vielen Vielen Dank! Habt mir echt mega geholfen, besonders du nillehammer! Danke! Und sorry, für meine Dummheit...:bloed:
 

AmunRa

Gesperrter Benutzer
Nein ist es nicht, da die regeln fuer die Berechnung eines Schaltjahres falsch sind.

Die 1 Regel lautet jedes Jahr % 4 = 0 ist ein Schaltjahr. Okay das waere einfach.

Nun gibt es aber die ausnahmen. 2 Regel Jedes Jahr % 100 = 0 ist kein Schaltjahr, obwohl es eigentlich nach der ersten Regel ein Schaltjahr waere.

und von dieser Regel gibt es wieder eine Ausnahme. 3 Regel: jedes Jahr % 400 = 0 ist wieder ein Schaltjahr.
 
N

nillehammer

Gast
Ich habe mal nach den Schaltjahrregeln gesurft und dasa hier gefunden:

Die drei Schaltjahr-Regeln:
1 Ein Jahr ist ein Schaltjahr, wenn die Jahreszahl restlos durch 4 teilbar ist.
2 Ein Jahr ist kein Schaltjahr, wenn es durch 4 und 100 restlos teilbar ist.
3 Ein Jahr ist ein Schaltjahr, wenn es sowohl durch 4, durch 100 und durch 400 teilbar ist

Du hast wohl die dritte Regel im Kopf gehabt, denn die ist eins zu eins im Code abgebildet. Allerdings gehen Dir da einige durch die Lappen (siehe Regel 1). Außerdem ist die Frage, ob man die Bedingungen nicht evtl. geschickter prüfen kann, um alles zu erschlagen. Das läuft übrigens möglicherweise doch wieder auf verschachtelte ifs hinaus, sorry :bae:. Aber jetzt weißt Du ja, wie es geht.
 
H

hüteüberhüte

Gast
Hi Linn, so:

Java:
    public static void main(String[] args) throws IOException {
        BufferedReader eingabemaschine = new BufferedReader(new InputStreamReader(System.in));

        System.out.println("Gebe ein beliebiges Jahr ein, dann kann ich dir sagen, ob es ein Schaltjahr ist!");
        String strJahreszahl = eingabemaschine.readLine();
        int jahreszahl = Integer.parseInt(strJahreszahl);

        if (jahreszahl % 4 == 0) {
            if (jahreszahl % 100 == 0) {
                if (jahreszahl % 400 == 0) {
                    System.out.println("Dein ausgewähltes Jahr ist ein Schaltjahr!");
                } else {
                    System.out.println("Dein eingegebenes Jahr ist kein Schaltjahr!");
                }
            } else {
                System.out.println("Dein eingegebenes Jahr ist kein Schaltjahr!");
            }
        } else {
            System.out.println("Dein eingegebenes Jahr ist kein Schaltjahr!");
        }
    }

so:

Java:
    public static void main(String[] args) throws IOException {
        BufferedReader eingabemaschine = new BufferedReader(new InputStreamReader(System.in));

        System.out.println("Gebe ein beliebiges Jahr ein, dann kann ich dir sagen, ob es ein Schaltjahr ist!");
        String strJahreszahl = eingabemaschine.readLine();
        int jahreszahl = Integer.parseInt(strJahreszahl);
        boolean scltjhr = true;

        if (jahreszahl % 4 == 0) {
            if (jahreszahl % 100 == 0) {
                if (jahreszahl % 400 == 0) {
                    System.out.println("Dein ausgewähltes Jahr ist ein Schaltjahr!");
                } else {
                    scltjhr = false;
                }
            } else {
                scltjhr = false;
            }
        } else {
            scltjhr = false;
        }

        if (scltjhr) {
            System.out.println("Dein eingegebenes Jahr ist kein Schaltjahr!");
        }
    }

oder so :) :

Java:
    public static void main(String[] args) throws IOException {
        BufferedReader eingabemaschine = new BufferedReader(new InputStreamReader(System.in));

        System.out.println("Gebe ein beliebiges Jahr ein, dann kann ich dir sagen, ob es ein Schaltjahr ist!");
        String strJahreszahl = eingabemaschine.readLine();
        int jahreszahl = Integer.parseInt(strJahreszahl);
        boolean scltjhr = true;

        if (jahreszahl % 4 == 0 && jahreszahl % 100 == 0 && jahreszahl % 400 == 0) {
            System.out.println("Dein ausgewähltes Jahr ist ein Schaltjahr!");
        } else {
            System.out.println("Dein eingegebenes Jahr ist kein Schaltjahr!");
        }
    }

Die allergenausten Regeln habe ich mal Außerachtgelassen, denn das kann sehr schnell sehr komplex werden. :)

lg hütte
 
Zuletzt bearbeitet von einem Moderator:

TKausL

Top Contributor
hüteüberhüte schau dir deinen Code mal selbst nochmal genau an, er tut auch nicht das was er soll :/

Java:
  if ((jahreszahl % 4 == 0 && jahreszahl % 100 != 0) || jahreszahl % 400 == 0) {

So sollte es wohl eher funktionieren.
Zu erklärung in Textform:
WENN
Jahreszahl durch 4 Teilbar ist UND nicht durch 100 teilbar ist
ODER
Jahreszahl durch 400 Teilbar ist


Dann ist es ein Schaltjahr.

hüteüberhüte, wenn bei deinem 1. Code die jahreszahl durch 4 teilbar ist, aber NICHT durch 100 kommt er bei der 2. if in den else-Block, und es wird "kein Schaltjahr" ausgegeben.

bei deinem 2. Code das gleiche, nur dass scltjhr auf false gesetzt wird, wobei ich nichtmal weiß was das darstellt da du unten "kein Schaltjahr" ausgibst WENN scltjhr true ist.

Und bei deinem dritten code bekommst du nur true zurück wenn das Jahr durch 400 teilbar ist.
 
H

hüteüberhüte

Gast
@TKaus: Daß es noch nicht das richtige Ergebnis berechnet, war mir bewusst, ich wollte nur den source von Linn ausführbar machen. :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
pumpgun99 Fehler Meldung "else without if" Java Basics - Anfänger-Themen 3
E Compiler-Fehler Fehler: else without if Java Basics - Anfänger-Themen 11
R else without if error Java Basics - Anfänger-Themen 5
C Variablen 'else' without 'if' Java Basics - Anfänger-Themen 4
J Fehlermeldung else without if Java Basics - Anfänger-Themen 5
P Compiler-Fehler wieso zeigt der compiler ein else without if? Java Basics - Anfänger-Themen 3
E Verschachtelte If-Anweisungen - "else without if" Java Basics - Anfänger-Themen 4
T if-else Bedingung wird ignoriert Java Basics - Anfänger-Themen 4
I If / Else in Setter? Java Basics - Anfänger-Themen 8
M If-Else Java Basics - Anfänger-Themen 5
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
laxla123 Verschachtelte If-Else Schleife Java Basics - Anfänger-Themen 21
laxla123 If-else Java Java Basics - Anfänger-Themen 4
luggas89 If else auch mit unterschiedlichen Antworten Java Basics - Anfänger-Themen 5
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
W Verschachtelte If-else --> finde meinen Fehler nicht Java Basics - Anfänger-Themen 30
B Scanner-If/else kleine Abhebungs-Simulation Java Basics - Anfänger-Themen 3
A Übung Else if Java Basics - Anfänger-Themen 2
M Else wird nicht ausgeführt. Java Basics - Anfänger-Themen 5
L If und else bei 2 Dimensionalen Arrays Java Basics - Anfänger-Themen 8
F if else if anfängerfrage Java Basics - Anfänger-Themen 22
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27
C Problem mit If Else If und Überprüfung eines Counters Java Basics - Anfänger-Themen 3
T "Einkauf" & if else Struktur Java Basics - Anfänger-Themen 7
steven789hjk543 Input mit if-else Java Basics - Anfänger-Themen 23
H ERGÄNZUNGSFRAGE: Klammersetzung bei if-else Anweisungen und Schleifen Java Basics - Anfänger-Themen 2
A break; mit Einfluss hinter else if Block Java Basics - Anfänger-Themen 3
F Methoden Verschachtelte if else Methode Java Basics - Anfänger-Themen 10
M Java Taschenrechner (if-else) Java Basics - Anfänger-Themen 11
F If - Else Java Basics - Anfänger-Themen 3
F Variablen If else: Einer Variable einen Wert hinzufügen oder so? Java Basics - Anfänger-Themen 6
I if/else Statements Java Anfänger Java Basics - Anfänger-Themen 14
M jOptionPane mit if else Java Basics - Anfänger-Themen 16
K Frage zu If & else if Java Basics - Anfänger-Themen 5
R else if anweisungen Java Basics - Anfänger-Themen 2
Y Problem mit If-Else Verzweigung! Java Basics - Anfänger-Themen 9
A Warum funktioniert switch aber nicht if/else? Java Basics - Anfänger-Themen 23
Hijo2006 If-else Java Basics - Anfänger-Themen 6
P Erste Schritte Taschenrechner mit if-else Anweisung Java Basics - Anfänger-Themen 6
T If/ Else If (zurückkehren) Java Basics - Anfänger-Themen 4
O Grosse If / Else verschachtelung übersichlitcher gestlten Java Basics - Anfänger-Themen 6
S Erste Schritte Unterschied "if" und "else if" Java Basics - Anfänger-Themen 27
M If in einem else Java Basics - Anfänger-Themen 14
A boolean Methode ohne If und else Java Basics - Anfänger-Themen 1
J Mehrere IF Anweisungen und dazugehörige ELSE Java Basics - Anfänger-Themen 6
C else in if umschreiben Java Basics - Anfänger-Themen 2
E If...else... Java Basics - Anfänger-Themen 7
G Mehrere If-else-Sätze der Reihe nach durchlaufen lassen Java Basics - Anfänger-Themen 2
C If Else Frage Java Basics - Anfänger-Themen 2
M if, else Anweisung Java Basics - Anfänger-Themen 3
J Ergebnis wird gespammt sowie eine else if Frage Java Basics - Anfänger-Themen 2
A instanceof-if-else-Anweisungen eleganter lösen Java Basics - Anfänger-Themen 5
O if and else geht nur manchmal Java Basics - Anfänger-Themen 17
V Operatoren Java if-else argument Java Basics - Anfänger-Themen 4
D Keine Funktion bei "else" Java Basics - Anfänger-Themen 5
P [ANFÄNGER] if else funktioniert nicht Java Basics - Anfänger-Themen 4
T If, else Problem Java Basics - Anfänger-Themen 12
C IF-Else Verknüpfungen Java Basics - Anfänger-Themen 10
Uzi21 if - else Abfrage Java Basics - Anfänger-Themen 6
T Problem im If-Else-Statement Java Basics - Anfänger-Themen 4
R if funktion ohne else - Bedingung trifft nicht zu, ausgabe nicht nachvollziehbar Java Basics - Anfänger-Themen 7
T If ; else error on system token delete Java Basics - Anfänger-Themen 5
N Best Practice Stilistische Anwendung von if/else-Abfragen Java Basics - Anfänger-Themen 7
F try/catch - (else) Java Basics - Anfänger-Themen 11
H Worauf bezieht sich die erste else-Anweisung Java Basics - Anfänger-Themen 9
S if und else problem... Java Basics - Anfänger-Themen 13
Q if-else Logikproblem Java Basics - Anfänger-Themen 4
M Probleme mit else if Java Basics - Anfänger-Themen 15
M Erste Schritte Break-Anweisung bei if-else Java Basics - Anfänger-Themen 6
B OOP If und else in Main class einbinden Java Basics - Anfänger-Themen 9
T Erste Schritte switch case Anweisung und if else Verzweigungen? Java Basics - Anfänger-Themen 6
K Bedingungen else Java Basics - Anfänger-Themen 7
B if-else in einer schleife Java Basics - Anfänger-Themen 14
J Erste Schritte If-Else Idee gesucht Java Basics - Anfänger-Themen 6
T if else Java Basics - Anfänger-Themen 8
R boolean, if-else Java Basics - Anfänger-Themen 7
M if then else geht nicht Java Basics - Anfänger-Themen 10
P int-Wertevergleich mit if-else-Verzweigung Java Basics - Anfänger-Themen 3
P If-else-Verzweigung Java Basics - Anfänger-Themen 9
D Java Einsteiger (boolean, if-else etc.) Java Basics - Anfänger-Themen 7
I Methoden Problem If/Else; Public Void Java Basics - Anfänger-Themen 6
P Anzahl der else if Operatoren begrenzt?? Java Basics - Anfänger-Themen 7
K Mal wieder ein Problem mit If / Else Java Basics - Anfänger-Themen 10
K Anfänger If / Else Problem Java Basics - Anfänger-Themen 5
C if else Abfrage Java Basics - Anfänger-Themen 11
T Umschreiben von switch in if else und umgekehrt Java Basics - Anfänger-Themen 9
C Schleifen, if, else......? Java Basics - Anfänger-Themen 8
2 if und else Java Basics - Anfänger-Themen 9
L If/else nicht korrekt ausgeführt. Java Basics - Anfänger-Themen 22
S Brauche Hilfe bei if/else Java Basics - Anfänger-Themen 3
S if-else Java Basics - Anfänger-Themen 22
A ein if else problem Java Basics - Anfänger-Themen 13
N If-else-If Leiter Java Basics - Anfänger-Themen 9
U Dringend: Syntax error on token "else" Java Basics - Anfänger-Themen 8
L if else anweisung Java Basics - Anfänger-Themen 2
M If/Else mit Zahlenfolge Java Basics - Anfänger-Themen 13
B Problem mit Variable und if/else Java Basics - Anfänger-Themen 6
H alternativen zu if .. else .. Java Basics - Anfänger-Themen 11
J Geschachtelte If-Else Anweisung Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben