【发布时间】:2016-03-10 00:15:57
【问题描述】:
我是 C++ 课程的评分员。由于缺乏实践,我在更高级的概念方面的技能总体上相当缺乏,所以我不熟悉语言的来龙去脉。我的问题是关于掷骰子的作业中有一段不寻常的代码块。
#include <iostream>
using namespace std;
int main()
{
int numSims = numSims % 12 == 0 || numSims > 1000;
//Other irrelevant code follows
}
我找不到任何说这是错误的语法。据我所知,当这种语句无法执行时,我不明白为什么学生会想要这样做。这里有比我想念的秘密吗?
【问题讨论】:
-
说“无法执行”这个说法并不准确,但代码肯定是个bug。
-
没有秘密,它的垃圾。也许他们的意思是
bool stop = numsims ... -
这可能是一个试图变得聪明的学生,但没有考虑易读性和连贯性,因为整个语句将返回 1 或 0(真或假)。它是递归的事实也意味着它会导致未定义的行为。是时候给你的学生打几分了!
标签: c++ logical-operators