【发布时间】:2010-01-19 15:52:25
【问题描述】:
我是第二节 OOP 课程的编程学生,我有一个简单的问题,我无法在互联网上找到答案,如果有,我深表歉意。
我的问题是这样的:
switch 语句中是否可以有布尔条件?
例子:
switch(userInputtedInt)
{
case >= someNum && <= someOtherNum
break;
// Is this possible?
}
【问题讨论】:
-
没有。而且我应该注意到,如果你使用开关,你几乎可以肯定没有在做 OOP。
-
@Neil:请解释一下。我们应该用完整的类层次结构替换程序中的所有布尔表达式吗?
-
不。但是我们不应该假装我们在做 OOP——我们在做过程编程(不幸的是,没有很酷的 TLA)。
-
为什么过程式编程不能成为 OOP 的一部分?我的意思是,我们不是 Smalltalk 纯粹主义者,是吗?或者,为什么 switch 语句不是 OOP,但 if 语句是?
-
@Brian 不是 ST 纯粹主义者,但我认为没有开关是 ST 做对的事情之一。恕我直言,任何 OOP 课程(以及 OP 确实问过这个问题)如果在第二堂课中专注于 switch/case 语法而不是(比如说)多态性,那么它将是有缺陷的。
标签: c++ switch-statement