# java blueJ BMI rechner



## Unregistriert (28. Okt 2009)

```
currentPost.edit();

/**
 * Write a description of class Bmi here.
 * 
 * @author (David ) 
 * @version (a version number or a date)
 */
public class Bmi
{

    int gewicht;
    double groesse;
    int BMI;
  
    
  

    
    void bmi(int größe, int gewicht)
{
      BMI =(gewicht/(größe*größe));
     
    }
        
    
    public void ausgeben()
    {
    System.out.println( "Sie wiegen " +gewicht+ "kg");
     System.out.println( " Ihre Größe betragt. " +groesse+ " cm");
      System.out.println( " ihr Bmi beträgt : " + BMI+ " punkte");
  
    
    if(BMI < 20)
    {
        System.out.println("Laut BMI haben Sie Untergewicht!");
    }   
        else
        {
         if(BMI > 25)
         {
       System.out.println("Laut BMI haben Sie Übergewicht!");
    }
    else
    {
        System.out.println("Laut BMI haben Sie Normalgewicht!");
    }   
}
}
}


warum rechnet er mir den Bmi nicht aus?
```


----------



## Evil-Devil (28. Okt 2009)

Sieht so aus als würdest du die Funktion bmi() nie aufrufen.


----------



## Gonzo17 (29. Okt 2009)

Solltest du nur diese Klasse haben und die ist so, wie sie da steht, vollständig, dann kann das garnicht funktionieren. Wie soll deine Applikation starten? Wo wird bmi() bzw ausgeben() überhaupt mal aufgerufen? Und woher kommen die Werte für Gewicht und Grösse? Ich hab mal ein kleines Beispiel gemacht (allerdings mit festen Werten für Gewicht und Größe, also ohne Eingabemöglichkeit). Zumal da noch einige Dinge überhaupt nicht gut aussahen. ^^ 


```
public class BMI_Calculator {

	static double weight = 70;
	static double height = 1.80;

	static double bmi(double height, double weight) {
		return (weight / (height * height));
	}

	public static void main(String[] args) {
		double BMI = bmi(height, weight);
		System.out.println("Sie wiegen " + weight + " kg.");
		System.out.println("Ihre Größe beträgt " + height * 100 + " cm.");
		System.out.println("Ihr Bmi beträgt : " + BMI + " Punkte");

		if (BMI < 20) {
			System.out.println("Laut BMI haben Sie Untergewicht!");
		} else {
			if (BMI > 25) {
				System.out.println("Laut BMI haben Sie Übergewicht!");
			} else {
				System.out.println("Laut BMI haben Sie Normalgewicht!");
			}
		}
	}
}
```


----------



## Guybrush Threepwood (29. Okt 2009)

*SEUFZ* Immer diese super-dämlichen BMI-Rechner! Können Lehrer nicht mal was sinnvolles aufgeben?

Und diese Angabe von statischen Werte (>25 = Übergewicht) ist auch falsch. Das hängt nämlich vom Lebensalter ab. Ein Kleinkind mit diesem Wert wäre super-fett, wohingegen ein 60 Jähriger deutlich schwerer sein darf, ohne als übergewichtig zu gelten.


----------



## Gonzo17 (29. Okt 2009)

Der BMI ansich ist ja auch nicht wirklich aussagekräftig. Wenn jemand durchtrainiert und deswegen schwerer ist, dann kann es ja trotzdem sein, dass er gesund ist und kein Übergewicht hat, auch wenn der BMI das behaupten würde.


----------



## Quaxli (29. Okt 2009)

Und was hat das Ganze mit Spiele- und Multimediaprogrammierung zu tun? 
Fragen über Fragen.... ???:L


----------



## Landei (29. Okt 2009)

> größe


Ganz schlechte Idee. Deutsche Bezeichner sind ja schon grenzwertig, aber dann wenigstens ohne Umlaute oder Ligaturen...


----------



## Unregistriert (5. Nov 2009)

```
public class Bmi



  {

   
      double groesse, gewicht;
     
 
      public void giveGroesse(double wert)
      {
         groesse=wert;
      }
     
      public void giveGewicht(double wert)
      {
          gewicht=wert;
      }
     
      public Bmi()
      {
          gewicht=70;
          groesse=180;
      }
   
       

    public double BMI()
    {
      double BMI;
      BMI =(gewicht/(groesse*groesse)*10000);
      return BMI;
    }
       
   
    public void ausgeben()
    {
    System.out.println( "Sie wiegen " +gewicht+ "kg");
     System.out.println( " Ihre Größe betragt. " +groesse+ " cm");
      System.out.println( " ihr Bmi beträgt : " + BMI() + " punkte");
 
   
    if(BMI() < 20)
    {
        System.out.println("Laut BMI haben Sie Untergewicht!");
    }  
        else
        {
         if(BMI() > 25)
         {
       System.out.println("Laut BMI haben Sie Übergewicht!");
    }
    else
    {
        System.out.println("Laut BMI haben Sie Normalgewicht!");
    }  
}
}
}
```

Das sollte so funzen.
Du kannst mit void giveGewicht und giveGroesse die Variablen festlegen, aus BMI habe ich eine Funktion mit return gemacht. Also einfach groesse gewicht eingeben(oder die voreingestellten Werte nehmen) dann ausgeben  und es sollte funzen .


----------



## Unregistriert (5. Nov 2009)

Mir faellt grad noch ein wenn du BMI schoener machen willst nimm das. 
	
	
	
	





```
new CodeSnippet();
public  void giveBmiAuswertung()
     {
     
        if (BMI() < 16)
           {System.out.println("Sie haben starkes Untergewicht.");}
        else
          if (BMI() >=16 && BMI()<= 16.99)
              {System.out.println("Sie haben mäßiges Untergewicht");}
          else
            if (BMI() >=17 && BMI()<= 18.49)
               {System.out.println("Sie haben leichtes Untergewicht.");}
            else
              if (BMI() >=18.5 && BMI()<=24.99)
                  {System.out.println("Sie haben normales Gewicht");}
              else
                if (BMI() >=25 && BMI()<29.99)
                    {System.out.println("Sie sind Präadipositas");}
                else
                  if (BMI() >=30 && BMI()<34.99)
                      {System.out.println("Sie sind Adipositas Grad 1");}
                  else
                    if (BMI() >=35 && BMI()<39.99)
                        {System.out.println("Sie haben Adipositas Grad 2");}
                    else
                          {System.out.println("Sie haben Adipositas Grad 3");}
      }
```


----------

