Range checks using a switch statement

后端 未结 7 1146
陌清茗
陌清茗 2020-12-23 02:15

My teacher has assigned a program to use both if-else statements and switch statements, so we understand how to implement both. The program asked u

7条回答
  •  礼貌的吻别
    2020-12-23 02:52

    We need to fit in the input, so, instead of this code:

    if (BMI < 18.5) {
            q = 1;
        }
        else if (BMI >= 18.5 && BMI < 25.0) {
            q = 2;
        }
        else if (BMI >= 25.0 && BMI < 30.0) {
            q = 3;
        }
        else if (BMI >= 30.0 && BMI < 35) {
            q = 4;
        }
        else {
            q = 5;
        }
    
        switch (q) {
        case 1: cout << "You are underweight" << endl; break;
        case 2: cout << "You are a normal weight " << endl; break;
        case 3: cout << "You are overweight" << endl; break;
        case 4: cout << "You are obese" << endl; break;
        case 5: cout << "You are gravely overweight" << endl; break;
    
        }
    

    You need something like

    switch (1 + (BMI >= 18.5) + (BMI >= 25) + (BMI >= 30) + (BMI >= 35)) {
        case 1: cout << "You are underweight" << endl; break;
        case 2: cout << "You are a normal weight " << endl; break;
        case 3: cout << "You are overweight" << endl; break;
        case 4: cout << "You are obese" << endl; break;
        case 5: cout << "You are gravely overweight" << endl; break;
    }
    

    The logic is to convert the if-elses into a mathematical formula, returning an int.

提交回复
热议问题