栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

当我们使用赋值而不是比较时,如何评估if / while条件?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

当我们使用赋值而不是比较时,如何评估if / while条件?

=
是赋值运算符,
==
是比较运算符。但

x = y

不仅 分配 的价值

y
x
,它也 将返回
该值。因此,我们可以执行
x=(y=1)
将分配
1
给的操作(甚至可以在此处删除括号)
y
,然后返回
1
将分配给的操作
x

在您的情况下,

if (b =true)
首先
true
将其分配给
b
它,然后将其返回,因此最终
if(true)
,它将始终为该布尔值执行来自分支的代码。


这通常是印刷错误的结果,因为在大多数情况下,我们要使用

==
(等于运算符)而不是
=
(赋值运算符)。

为了避免这个错误,我们可以编写如下代码

  • 作为
    if (b){..}
    -因为我们
    b == true
    总是
    b
    跳过
    == true
    一部分。
    if
    可以使用价值
    b
    代替评估
    b == true
    。当我们想使用否定而不是
    ==false
    写时
    if(!b){..}
  • 使用Yoda条件
    if(true == b){..}
    -如果错误地使用了
    =
    而不是
    ==
    我们将得到编译错误,它将通知我们有关编译错误,因为我们无法 任何 赋给 like
    true
    ,我们只能将值 赋给变量


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/570213.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号