在C++中添加布尔表达式switch语句?

Cha*_*ola 2 c++ boolean case break boolean-expression

我正在用C++练习switch语句,我想知道我是否可以添加一个布尔表达式,以及它是如何,就像它是if/else对应物一样.有可能加入这个吗?

这是我的骨架代码:

#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <cmath>
#include <string>
#include <Windows.h>
#include <stdlib.h>
#include <time.h>
#include <random>

using namespace std;


int main()
{
    int HouseValue;
    cout << "Enter your total house value estimate:";
    cin >> HouseValue;

    switch (HouseValue)
    {
        case 1:
            (HouseValue < 100000 && HouseValue > 50000);
            cout << "";
            break;
        case 2:
            (HouseValue < 250000 && HouseValue > 100000);
            cout << "";
            break;
        case 3:
            (HouseValue < 500000 && HouseValue > 250000);
            cout << "";
            break;
        case 4:
            (HouseValue < 1000000 && HouseValue > 500000);
            cout << "";
            break;
        case 5:
            (HouseValue < 3000000 && HouseValue > 1000000);
            cout << "";
            break;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Jac*_*ack 5

您不能直接在开关中使用条件,因为它们需要编译时常量表达式.在任何情况下,您的方法都缺少精确值的任何分支(例如HouseValue == 100000),并且它是多余的.

最简单的解决方案是使用if/else链:

if (HouseValue < 50000)
  ...
else if (HouseValue < 100000)
  ...
else if (HouseValue < 250000)
  ...
else if (HouseValue < 500000)
  ...
Run Code Online (Sandbox Code Playgroud)