我最近在漫画中发现了这段代码,我不明白。有人可以向我解释一下吗?变量应该改变它的值是否有任何理由?
static bool isCrazyMurderingRobot = false;
void interact_with_humans(void) {
if (isCrazyMurderingRobot = true)
kill(humans);
else
be_nice_to(humans)
}
答案 0 :(得分:2)
原因可能是在许多编程语言中,
检查相等性是使用==
完成的,而使用单个=
符号会将值赋给变量)。
所以代码
if (isCrazyMurderingRobot = true)
会将true
分配给变量,并且始终会满足第一个条件(因为赋值的结果为真)。
正确的行是:
// use '==' here instead of '=' to check if variable is set
// using a single '=' would assign the value instead
if (isCrazyMurderingRobot == true)
有关详细信息,请查看这些说明(它们是针对C#语言的,但运算符在Java等其他语言中的行为类似...)
assignment (=)运营商。
equality (==)运营商。