2016-08-13 121 views
0

我最近在漫画中找到了这个代码,我不明白。有人可以向我解释这个吗?为什么变量应该改变它的值有什么原因?OOP静态变量更改值

static bool isCrazyMurderingRobot = false; 

void interact_with_humans(void) { 
    if (isCrazyMurderingRobot = true) 
     kill(humans); 
    else 
     be_nice_to(humans) 
} 

这里是漫画:http://oppressive-silence.com/comics/oh-no-the-robots

+1

简单的说,你可以在一些语言的条件下进行赋值。看到这个问题的例子是这样的:http://stackoverflow.com/a/18450261/2127492 – jrbeverly

回答

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 (==)运营商。