跳转到内容

编程基础/赋值与相等

来自维基教科书,开放的书籍,开放的世界

赋值设置和/或重置存储在变量名称所表示的存储位置中的值。[1] 相等是一个关系运算符,用于测试或定义两个实体之间的关系。[2]

大多数控制结构使用一个测试表达式,该表达式根据表达式的真假执行选择(如 if then else)或迭代(如 while;do while;或 for 循环)。因此,我们经常谈论控制结构的布尔表达式。在许多编程语言中,此表达式必须是布尔表达式,并受一组严格的规则支配。但是,在许多编程语言中,每个数据类型都可以用作布尔表达式,因为每个数据类型都可以使用零和空表示假,所有非零值表示真的规则/概念降级为布尔值。

在各种语言中,我们可能存在额外的混淆,即等于符号 = 作为一个运算符,不代表我们在生活中使用的大部分时间的正常数学意义上的相等。等于符号通常表示赋值。为了获得数学意义上的相等概念,我们经常使用两个等于符号来表示相等的关系运算符。让我们考虑

If (pig = 'y')
    Output "Pigs are good"
Else
    Output "Pigs are bad."

控制结构的测试表达式将始终为真,因为表达式是一个赋值(而不是 == 的关系运算符)。它将 'y' 赋值给变量 pig,然后查看 pig 中的值,确定它不为零;因此表达式为真。它将始终为真,并且 else 部分将永远不会执行。这不是程序员的本意。布尔表达式的正确语法是

If (pig == 'y')
    Output "Pigs are good"
Else
    Output "Pigs are bad."

此示例提醒您,在创建测试表达式时必须小心,以确保它们确实是问题,通常涉及关系运算符。一些编程语言会在布尔表达式中使用赋值时生成警告或错误,而另一些则不会。

不要将赋值用于相等。

关键词

[编辑 | 编辑源代码]
赋值
设置或重置变量的值。
相等
测试或定义值之间的关系。

参考文献

[编辑 | 编辑源代码]
华夏公益教科书