Home > Software design >  Calculate BMI JavaScript switch
Calculate BMI JavaScript switch

Time:04-01

I am doing a standard task with codewares: Write function bmi that calculates body mass index (bmi = weight / height2).

Here is my solution:

function bmi(weight, height) {
  let bmi = weight / (height ** 2)

  if (bmi <= 18.5) {

    return "Underweight";
  } else if (bmi <= 25.0) {

    return "Normal"
  } else if (bmi <= 30.0) {

    return "Overweight"
  } else if (bmi > 30) {
    return "Obese"
  }
}

console.log(bmi(80, 1.80))

I have a question: is it possible to solve this problem with the help of a switch? Because I tried it in different ways and in the console I have undefined:

function bmi(weight, height) {

  let bmi = weight / (height ** 2)

  let c = "Normal"

  switch (bmi) {
    case "Underweight":
      bmi <= 18.5;
      break;

    case "Normal":
      bmi <= 25.0;
      break;

    case "Overweight":
      bmi <= 30.0;
      break;

    default:
      return;
  }
}
console.log(bmi(80, 1.80))

CodePudding user response:

You have switched your case and your outcome-- that's the issue. Here it is switched the right way:

function bmi(weight, height) {

  let bmi = weight / (height ** 2)

  let c = "Normal"

  switch (bmi) {
    case bmi <= 18.5:
      c = "Underweight";
      break;

    case bmi <= 25.0:
      c = "Normal";
      break;

    case bmi <= 30.0:
      c = "Overweight";
      break;

  }
  return c;
}

console.log(bmi(80, 1.80))

  • Related