啊啊啊编程难,难于上青天 2023-09-18 08:53 采纳率: 100%
浏览 9
已结题

为什么!!x,x取0时值不等于x

为什么!!x,x取0时值不等于x,取1时就等于x
(1234567890凑字数)

  • 写回答

3条回答 默认 最新

  • jk_101 2023-09-18 09:00
    关注

    在很多编程语言中,!!x 不会返回 x 的原因是因为双感叹号 !! 可以用来将一个值强制转换为布尔类型,并消除类型的不确定性。具体来说,它执行以下两个步骤:

    第一个感叹号 ! 将 x 转换为布尔值。在大多数编程语言中,0 被视为假(false),而非零值被视为真(true)。

    第二个感叹号 ! 取反前面的布尔值。这个操作会将 true 转换为 false,将 false 转换为 true。

    所以,无论 x 的值是什么,!!x 的结果都会是布尔值 true 或 false,而不是原始的 x 的值。

    这种操作通常用于确保一个值是布尔类型,并消除可能的类型不一致性。例如,在某些情况下,你可能需要确保一个变量是布尔类型,以便进行逻辑运算或条件判断。使用 !! 可以将任何值强制转换为布尔类型。

    如果你想要的是将 x 的值保留下来,而不是将其转换为布尔类型,你应该直接使用 x,而不是 !!x。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月3日
  • 已采纳回答 9月25日
  • 创建了问题 9月18日