BMI

metaljojo

Mitglied
Ich bin blutiger anfänger und finde daher meinen fehler nichteinmal in Googele....
bitte keine "maulereien" von wegen "SOOO eine frage ichst schon 50000000 mal gestellt worden..." ich dessen bewust dass ich mich warscheinlich sehr dumm anstelle und entschuldige mich schoneinmal im vorhinaus... ;)

vielen dank!

(es handelt sich um einen kleinen BMI rechner)

(wo es hapert findet ihr im script als kleine natiz)

Java:
public class BMI
{


    public void BMI(double groesse, double gewicht, double alter)
    {
      if (groesse > 3)
      {
              groesse = groesse/100;
      }

          double lhoch2 = groesse*groesse;
            
          double bmi = gewicht/lhoch2 ;
          
          double lol;
          
          System.out.println(bmi + "dieser Wert");


///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// hier möchte ich mit hilfe von if und else/ else if  auch noch weitere "print´s" erstellen allerdings 
// scheitere ich an der ausgabe der funktion BMIrechner... was mache ich falsch ? 
//
///////////////////////////////////////////////////////////////////////////////////////////////////////////////

// 19 - 24 Jahre

      if   (alter >= 19 && alter <= 24)

      {

           System.out.println (BMIrechner(bmi,19, 25,30 ));
      }
    }
        




    public void BMIrechner(double bmiwert, double normalBMI, double schwerbmi, double fettleibigkeit)  
    {
        if      (bmiwert < normalBMI - 0.000000000000000000000000000000000001 )
                System.out.println("sehr schlecht! du bist untergewichtig!");
        else if (bmiwert >= normalBMI && bmiwert <= schwerbmi - 0.000000000000000000000000000000000001 )
                System.out.println("Normal!");
        else if (bmiwert >= schwerbmi && bmiwert <= fettleibigkeit - 0.000000000000000000000000000000000001 )
                System.out.println("schlecht! du bist übergewichtig!");
        else if (bmiwert > fettleibigkeit )
                System.out.println("sehr schlecht! du bist stark übergewichtig!");
    } 
    
}
 
Zuletzt bearbeitet von einem Moderator:

metaljojo

Mitglied
na toll ich tollpatsch habe auch noch etliche rechtschreib-und logikfehler in meinen beitrag gebracht... ich bitte auch dort hinüber hinweg zu sehen ;)
 

Schandro

Top Contributor
Die Methode
Code:
BMIrechner
ruft doch bereits von sich aus
Code:
System.out.println
auf, warum willst du denn das noch in
Code:
BMI
machen? Außerdem ist diese Zeile:
Java:
System.out.println (BMIrechner(bmi,19, 25,30 ));
falsch, da die Methode
Code:
BMIrechner
keinen Rückgabewert hat (void). Deswegen kannst du kein
Code:
System.out.println
drumherum schreiben.
 

localhost1

Mitglied
Deine Funktion gibt void zurück, wenn du da System.out.println machst kommt nichts raus.


Ich weiß nicht obs dir aufgefallen ist, aber da fehlt main ;)
 
S

SlaterB

Gast
> bitte keine "maulereien" von wegen "SOOO eine frage ichst schon 50000000 mal gestellt worden..."

das ist doch Quark, wenn du keine Standard-Frage sondern einen individuellen Code-Fehler hast,
wird niemand auf andere Themen verweisen,

--

ein Thementitel 'wo ist der Fehler' ist anderseits extrem dämlich,
dafür brauchst du auch keine Java-Kenntnisse, dafür musst du mal den Kopf zum Denken einschalten,

jeder Titel der irgendwas minimal sinnvoll eingrenzes zum Thema sagt (wie jetzt meine Wahl 'BMI') ist deutlich besser,
allein zur Unterscheidung von anderen Themen/ Erinnerung des Inhalts,
dass du einen Fehler/ ein Problem/ eine Frage hast, ist allen sowieso klar, trifft auf jedes Thema zu..
 
M

Marco01_809

Gast
Java:
public class BMI {
	public BMI(double groesse, double gewicht, double alter) {
		if (groesse > 3) {
			groesse = groesse / 100;
		}
		double lhoch2 = groesse * groesse;
		double bmi = gewicht / lhoch2;

		System.out.println(bmi + " dieser Wert");

		// 19 - 24 Jahre
		if (alter >= 19 && alter <= 24) {
			BMIrechner(bmi, 19, 25, 30);
		}
		
		// ... Jahre
		
	}

	private void BMIrechner(double bmiwert, double normalBMI, double schwerbmi,
			double fettleibigkeit) {
		if (bmiwert < normalBMI - 0.000000000000000000000000000000000001)
			System.out.println("sehr schlecht! du bist untergewichtig!");
		else if (bmiwert >= normalBMI
				&& bmiwert <= schwerbmi - 0.000000000000000000000000000000000001)
			System.out.println("Normal!");
		else if (bmiwert >= schwerbmi
				&& bmiwert <= fettleibigkeit - 0.000000000000000000000000000000000001)
			System.out.println("schlecht! du bist Übergewichtig!");
		else if (bmiwert > fettleibigkeit)
			System.out.println("sehr schlecht! du bist stark Übergewichtig!");
	}
	
	public static void main(String[] args) {
		new BMI(176, 65, 20);
	}
}

War das so gemeint?
Hab aus deiner Funktion "BMI" einen Konstruktor gemacht und eine main-Methode hinzugefügt ;) Zudem noch den bereits angesprochenen Fehler mit dem Sysout() und void entfernt
 

metaljojo

Mitglied
VIELEN DANK !
für die gute hilfe

so wie unten angegeben sieht nun der vertige code aus ;)

ich verstehe allerdings nicht was die folgenden zeilen bedeuten... und wie kommst du auch diese zahlen ? :D

Java:
public static void main(String[] args) {
    new BMI(176, 65, 20);
    }

Java:
public class BMI {
    public BMI(double groesse, double gewicht, double alter) {
        if (groesse > 3) {
            groesse = groesse / 100;
        }
        double lhoch2 = groesse * groesse;
        double bmi = gewicht / lhoch2;
 
        System.out.print(bmi + " dieser Wert ist für dein Alter ");
 
             
   //1 bmi             
   //2 normalBMI       
   //3 schwerBMI        
   //4 Fettleibigkeit    
                             

        // 0 - 10 Jahre
        if (alter >= 0 && alter <= 10) {
            BMIrechner(bmi, 3, 7, 11 );

        }
        // 11 - 14 Jahre        
        else if (alter >= 11 && alter <= 14) {
            BMIrechner(bmi,  9, 20, 24 );

        }      
        // 15 - 18 Jahre
        else if (alter >= 15 && alter <= 18) {
            BMIrechner(bmi, 18, 24, 28 );

        }  
        // 19 - 24 Jahre        
        else if (alter >= 19 && alter <= 24) {
            BMIrechner(bmi, 19, 25, 30 );

        }  
        // 25 - 34 Jahre        
        else if (alter >= 25 && alter <= 34) {
            BMIrechner(bmi, 20, 26, 31 );

        }
        // 35 - 44 Jahre        
        else if (alter >= 35 && alter <= 44) {
            BMIrechner(bmi,  21, 27, 34 );

        }  
        // 45 - 54 Jahre        
        else if (alter >= 45 && alter <= 54) {
            BMIrechner(bmi, 22, 28, 34 );

        }   
        // 55 - 64 Jahre        
        else if (alter >= 55 && alter <= 64) {
            BMIrechner(bmi,  23, 29, 36 );

        }
        // 65 Jahre +
        else{
            BMIrechner(bmi, 24, 30, 36 );

        }                
    }
 
    private void BMIrechner(double bmiwert, double normalBMI, double schwerbmi, double fettleibigkeit) {
        if (bmiwert < normalBMI - 0.000000000000000000000000000000000001)
            System.out.println("sehr schlecht! du bist untergewichtig!");
        else if (bmiwert >= normalBMI
                && bmiwert <= schwerbmi - 0.000000000000000000000000000000000001)
            System.out.println("Normal!");
        else if (bmiwert >= schwerbmi
                && bmiwert <= fettleibigkeit - 0.000000000000000000000000000000000001)
            System.out.println("schlecht! du bist Übergewichtig!");
        else if (bmiwert > fettleibigkeit)
            System.out.println("sehr schlecht! du bist stark Übergewichtig!");
    }
    
    public static void main(String[] args) {
        new BMI(176, 65, 20);
    }
}
 

Schandro

Top Contributor
Code:
new BMI(176, 65, 20);
ruft den Konstruktor von BMI auf.

Diese Zahlen hat er sich einfach ausgedacht, kannst du beliebig ändern oder durch Zahlen die der User irgendwo eingibt tauschen...
 

metaljojo

Mitglied
Ahhh ok ;)
und da mei meinem 1. script die funktion BMI "void" war konnte sie keine werte an BMIrechner abgeben habe ich das richtig verstanden ?
 

Neue Themen


Oben