【发布时间】:2014-11-06 23:12:33
【问题描述】:
我正在用 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;
}
【问题讨论】:
-
case 表达式必须在编译时知道。
-
我添加了 if's before 但我姐姐说这不可能,所以我删除了它们,它们的行为有问题。
-
@Chantola 即使他们在那里,他们在这段代码中也没用。例如,
case 1:的开关已经确定HouseValue是......好吧..1。测试它是否在 50000 和 100000 之间有点毫无意义,因为它显然不是(它的1)。 -
好的,我只是想知道这样的事情是否可以在 switch 语句中,答案是否定的。谢谢你们的超快速回复
-
我看不出
switch中的条件如何比if()构造更有效,而if()构造更具表现力。所以我看不到任何好处。switch的真正强大之处在于编译器可以利用分支的静态特性(例如构建跳转表)。
标签: c++ boolean case break boolean-expression