Frage von djhermes2000, 43

Warum wird mir der Fehler in Java angezeigt?

Hallo Freunde, ich bin gerade dabei einen BMI Rechner in Java (NetBeans) zu programmieren. Allerdings kommt immer bei der if /else if abfrage ein Fehlercode. Ich weiß nicht warum der kommt. Hab mir schon Videos angesehen etc aber bei denen ging das alles. if(Alter<=24) if(ergebnis>=0) System.out.println("ACHTUNG!!! Du hast ein Untergewicht"); if else(ergebnis>=19) System.out.println("PERFEKT!!! Du hast ein Normalgewicht"); if else(ergebnis>=24) System.out.println("ACHTUNG!!! Du hast leicht erhöhtes Übergewicht");

bei den zwei if else Abfragen kommt ein Fehler. Ich hab auch nochmal den ganzen Quelltext reingestellt damit man es sich komplett angucken kann. Hoffe jmd kann mit helfen :)

package bmirechner; import java.util.Scanner;

public class BMIrechner {

public static void main(String[] args) {

    double Körpergröße;
    double Gewicht;
    double Geschlecht;
    double ergebnis;
    int Alter;
    Scanner ScannerKörpergröße = new Scanner(System.in);
    Scanner ScannerGewicht = new Scanner(System.in);
    Scanner ScannerGeschlecht = new Scanner(System.in);
    Scanner ScannerAlter = new Scanner(System.in);

    System.out.println("Herzlich Willkommen zum BMI Rechner von Valentin Wagner");
    System.out.println("Sind Sie ein Mann oder eine Frau?");
    System.out.println("Geben Sie (1) für Frau ein und (2) für Mann ein");
    Geschlecht=ScannerGeschlecht.nextDouble();
    System.out.println("Wie alt sind sie?");
    Alter=ScannerAlter.nextInt();
    if(Geschlecht == 1){
        System.out.println("Bitte geben sie Ihre Körpergröße an");
        Körpergröße=ScannerKörpergröße.nextDouble();
        System.out.println("Bitte geben sie Ihr Gewicht an");
        Gewicht=ScannerGewicht.nextDouble();
        ergebnis=Gewicht / (Körpergröße * Körpergröße);
        System.out.println("Ihr BMI beträgt: " + ergebnis);
        if(Alter<=24)
            if(ergebnis>=0)
                    System.out.println("ACHTUNG!!! Du hast ein Untergewicht");
            if else(ergebnis>=19)
                    System.out.println("PERFEKT!!! Du hast ein Normalgewicht");
            if else(ergebnis>=24)
                    System.out.println("ACHTUNG!!! Du hast leicht erhöhtes Übergewicht");
Antwort
von Jonas711, 40

Netbeans ist doch schon so freundlich, dir den Fehler zu unterstreichen. Die Kombination "if else" gibt es nicht. "else if" wäre korrekt.

Ich vermute anhand der Einrückung mal, dass du hinter die Abfrage nach dem Alter noch eine geschweifte Klammer öffnen solltest.

Kommentar von SirNik ,

Wenn der if-abfrage nur ein befehl zum ausführen folgt, können die Klammern weggelasen werden, sieht aber nicht schön aus und ist mMn nicht so übersichtlich. gehen tut es aber

Kommentar von Jonas711 ,

Hast du recht, danke. Weiß ich eigentlich auch, war nur dadurch verwirrt, dass der eine Befehl ja wieder aus mehreren Abfragen (if und else if) besteht.

Kommentar von SirNik ,

:)

Antwort
von BigReddy, 4

Was den anderen nicht aufgefallen ist:
die beiden else if - Zweige sind "unreachable", da die erste Bedingung ergebnis>=0 immer zutrifft, wenn ergebnis>=19 oder 24.
Richtig wäre ergebnis<18, ergebnis<24 und ergebnis>=24.
Oder einfach die Reihenfolge der Abfragen ändern ;D 

Antwort
von TUrabbIT, 33

Wenn ich das richtig sehe, ist das Problem die Formulierung "if else", es müsste "else if" heißen.

Java kennt kein "if else" aber ein "else if"


Kommentar von djhermes2000 ,

Ahh ok danke, da stand ich wirklich aufm schlauch xD

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten