Avatar billede mr.gessle Nybegynder
16. april 2000 - 17:25 Der er 8 kommentarer og
3 løsninger

Body Mass Index program - switch problemer

import ConsoleReader.*;
import java.text.NumberFormat;

public class BMI
{
   
   
   
    public static void main (String args[])
    {ConsoleReader indlæs = new ConsoleReader(System.in);
       
        System.out.println("Indtast din højde i centimeter:");
        double højde                = indlæs.readDouble();
       
        System.out.println("Indtast venligst din vægt angivet i KG:");
        double vægt                = indlæs.readDouble();
     
     
     
      BMI.BodyMassIndex(højde, vægt);
      BMI.tilstand(int_vaerdi);
    }
   
   
    public static void BodyMassIndex(double højde, double vægt)
    {
        NumberFormat decimalFormat = NumberFormat.getNumberInstance();
        decimalFormat.setMaximumFractionDigits(2);
        decimalFormat.setMinimumFractionDigits(2);
       
        double beregning = (vægt * 100 * 100)/(højde*højde);
       
        System.out.println("Dit BMI-tal er:" + beregning);
        int int_vaerdi =(int)beregning;
       
    }   
       
       
   
    public static String tilstand(int int_vaerdi)   
    {   
       
        String skala ="";
        switch(int_vaerdi)
        {
        if            (int_vaerdi<=25)
                          skala = "Du er normal";
        else if (int_vaerdi==26)
                    skala = "Du er moderat overvægtig!";
        else if (int_vaerdi==27)
                    skala = "Du er moderat overvægtig!";
        else if (int_vaerdi==28)
                    skala = "Du er pænt stor!";
    else if (int_vaerdi==29)
                    skala = "Du er pænt stor!";

                   
        else if (int_vaerdi>29)
                            skala = "Gør noget ved dit vægtproblem!";
        }
       
      return skala;
   
       
   
    }

}
   
     
Compileren smider en fejlmeddelse om, at min switch i metoden tilstand ikke kan nåes. Hvad gør jeg forkert?
   
Avatar billede erikjacobsen Ekspert
16. april 2000 - 18:48 #1
Det er fordi du slet ikke skal bruge en switch, når du if-then-elser dig
ud af det. Du har slet ingen case etellerandet i din, og det brokker den sig over.
Du kan nøjes med:


public static String tilstand(int int_vaerdi)   
{   
    String skala ="";
    if  (int_vaerdi<=25)
      skala = "Du er normal";
    else if (int_vaerdi==26)
      skala = "Du er moderat overvægtig!";
    else if (int_vaerdi==27)
      skala = "Du er moderat overvægtig!";
    else if (int_vaerdi==28)
      skala = "Du er pænt stor!";
    else if (int_vaerdi==29)
      skala = "Du er pænt stor!";
    else if (int_vaerdi>29)
      skala = "Gør noget ved dit vægtproblem!";
    return skala;
}
Avatar billede olebloch Nybegynder
22. april 2000 - 20:30 #2
Jeg mener at bmi værdierne ligger sådan her, prøv selv på netdoktor de har en bmi tester liggende, eller har jeg en fuldt funktionel bmi-applet applet du kan få koden til, hvis du stikker mig nogle point



if(BMI < 15)
System.out.println(for_tynd);
else if(BMI >= 15 && BMI < 20)
System.out.println(tynd);
else if(BMI >= 20 && BMI <= 25)
System.out.println(ideal);
else if(BMI > 25 && BMI < 30)
System.out.println(fed);
else if (BMI >= 30)
System.out.println(alt_for_fed);
else
System.out.println(" ");
Avatar billede iseof Nybegynder
04. maj 2000 - 15:02 #3
hvis du bruger switch skal du bruge case
eks.

="";
        switch(int_vaerdi)
        {
        case 25: skala = "Du er normal"; break;
        }

jeg ved ikke lige om du kan bruge > og <.
Avatar billede el_gnu Nybegynder
13. august 2000 - 11:17 #4
Lukketid!!!
Avatar billede erikjacobsen Ekspert
13. august 2000 - 11:45 #5
Det er mr.gessle der bestemmer! Men - joh - et eller andet burde han jo nok se
at få gjort...
Avatar billede el_gnu Nybegynder
13. august 2000 - 12:23 #6
Jeg kører lige en væknings-kampagne så vi kan få lukket nogle af sprgs.
Avatar billede erikjacobsen Ekspert
13. august 2000 - 15:14 #7
Ikke vækkelses-kampagner vel    ;-)
Avatar billede el_gnu Nybegynder
13. august 2000 - 15:20 #8
*LOL*
Avatar billede el_gnu Nybegynder
18. september 2000 - 20:19 #9
...
Avatar billede jake_2 Nybegynder
20. september 2000 - 12:09 #10
iseof har ret, men du er ikke istand til at bruge
< > i en switch sætning.
Derfor er du på rette sport med if then else sætninger, da en case kun kan indeholde en værdi
switch(int_værdi)
{
case 0: skala=\"Du har et problem\"
}

Avatar billede el_gnu Nybegynder
10. oktober 2000 - 13:19 #11
...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester