Мой учитель назначил программу для использования операторов if-else
и switch
, поэтому мы понимаем, как реализовать их. Программа попросила нас предложить пользователю ввести вес и высоту в фунтах и метрах соответственно. Это моя попытка:
Без переключателя
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
double height, weight, BMI, heightMeters, weightKilo;
const double KILOGRAMS_PER_POUND = 0.45359237;
const double METERS_PER_INCH = 0.0245;
cout << "Please enter your height (inches) and weight (pounds)" << endl;
cin >> height >> weight;
weightKilo = weight*KILOGRAMS_PER_POUND;
heightMeters = height*METERS_PER_INCH;
BMI = weightKilo / (heightMeters*heightMeters);
if (BMI < 18.5) {
cout << "You are underweight " << endl;
}
else if (BMI >= 18.5 && BMI < 25.0) {
cout << "You are normal" << endl;
}
else if (BMI >= 25.0 && BMI < 30.0) {
cout << "You are overweight" << endl;
}
else if (BMI >= 30.0 && BMI < 35) {
cout << "You are obese" << endl;
}
else {
cout << "You are gravely overweight" << endl;
}
}
С помощью переключателя
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
double height, weight, heightMeters, weightKilo;
int BMI, q;
const double KILOGRAMS_PER_POUND = 0.45359237;
const double METERS_PER_INCH = 0.0245;
cout << "Please enter your height (inches) and weight (pounds)" << endl;
cin >> height >> weight;
weightKilo = weight*KILOGRAMS_PER_POUND;
heightMeters = height*METERS_PER_INCH;
BMI = weightKilo / (heightMeters*heightMeters);
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;
}
}
Так я думал, чтобы включить оператор switch. Есть ли способ реализовать первый блок кода только для оператора switch?
Я был почти уверен, что нельзя использовать диапазоны или использовать двойные (18.5). Я отправил письмо своему учителю, и они дали мне ответ в соответствии с
Это может не иметь смысла для вас, но иногда вам придется писать программу, которая не имеет смысла. Я не говорю, что у вас нет законных вопросов, но если кто-то может понять это, вы можете. Но тогда, может быть, это невозможно понять. Это вызов ".
Итак, я спрашиваю: есть ли какой-нибудь метод просто использовать оператор switch для первого блока кода или что я сделал лучший способ использовать оператор switch в коде, даже если он никоим образом не является необходимо?