C语言——!(--x)和!(-x)以及while(!(--x)) 和 while(!(-x))

一、!(--x) 和 !(-x) 

 1. !(--x)

        这个表达式表示先对变量 x 执行自减操作(即 x 的值减去 1),然后对自减后得到的结果取逻辑非。

        如果自减后的 x 等于 0,则逻辑非运算的结果为真(值为 1);否则结果为假(值为 0)。
 

2. !(-x)

        这个表达式表示对 -x 取反,也就是先计算 -x,这里的 - 是一元负号运算符,它会将 x 的值取相反数。

        然后对这个相反数的结果进行逻辑非判断。如果 -x 计算后等于 0,则逻辑非的结果为真(值为 1);如果不等于 0,则结果为假(值为 0)。

总结

        在 !(-x) 中,主要关注的是变量 x 的相反数是否为零,而非自减操作。例如,若 x 为正数时,-x 将是一个负数,除非 x 刚好是 0,此时 -x 也为 0,因此 !(-x) 的结果将是假(对于任何非零的 x)和真(当 x 等于 0 时)。

二、while(!(–x)) 和 while(!(-x)) 

 1. while(!(--x))

        这是一个条件循环语句。首先执行 --x,对变量 x 进行自减操作,然后检查自减后 x 的值是否为 0。

        如果 x 在自减后等于 0,则表达式 !(--x) 的结果为真(即逻辑非的运算结果为真),循环不执行;如果 x 在自减后不等于 0,则表达式的结果为假,循环执行一次。

        每次循环结束后都会重新判断该条件,直到 x 被减到等于 0。

 2. while(!(-x))

        这也是一个条件循环语句。首先计算 -x,即 x 的相反数,然后判断这个相反数是否为 0。

        如果 x 是一个正数,那么 -x 将是一个负数,除非 x 等于 0,此时 -x 也为 0。

        因此,在 x 不是 0 的情况下,!(-x) 的结果将是假,循环会执行;当 x 等于 0 时,!(-x) 的结果为真,循环将停止。每次循环结束后同样会重新计算 -x 并检查是否为 0 来决定是否继续循环。

总结

        这两个循环都会在满足特定条件时结束,但它们关注的条件不同:前者基于 x 自减后的结果是否为零,后者基于 x 的相反数是否为零。

相关推荐

  1. C语言——!(--x)!(-x)以及while(!(--x)) while(!(-x))

    2024-01-05 12:06:05       29 阅读
  2. 微信小程序睡眠X秒【while循环模式】

    2024-01-05 12:06:05       18 阅读
  3. +-x c++

    2024-01-05 12:06:05       19 阅读
  4. Unix运维_Unix下配置PHP-7.x.xApache-2.x.x

    2024-01-05 12:06:05       20 阅读
  5. C语言分支循环语句while

    2024-01-05 12:06:05       23 阅读
  6. C while do while 区别

    2024-01-05 12:06:05       21 阅读
  7. 细说waylandX11

    2024-01-05 12:06:05       7 阅读
  8. whileuntil语句

    2024-01-05 12:06:05       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-05 12:06:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-05 12:06:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-05 12:06:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-05 12:06:05       20 阅读

热门阅读

  1. 什么是软件测评?

    2024-01-05 12:06:05       38 阅读
  2. vue2和vue3 部署打包到线上子目录的区别

    2024-01-05 12:06:05       36 阅读
  3. 50、Flink的单元测试介绍及示例

    2024-01-05 12:06:05       32 阅读
  4. flutter 项目安卓开启混淆防止渗透

    2024-01-05 12:06:05       37 阅读
  5. LN和BN

    LN和BN

    2024-01-05 12:06:05      30 阅读
  6. cnn lstm结合网络

    2024-01-05 12:06:05       42 阅读
  7. uniapp vue 前端页面半小时选择器

    2024-01-05 12:06:05       32 阅读
  8. 项目管理的细节-平衡

    2024-01-05 12:06:05       35 阅读
  9. 哈希查找【数据结构】

    2024-01-05 12:06:05       34 阅读
  10. Spring中的依赖注入(DI)的几种方法的使用

    2024-01-05 12:06:05       27 阅读
  11. 后台管理系统权限处理

    2024-01-05 12:06:05       46 阅读
  12. k8s三种常用的项目发布方式

    2024-01-05 12:06:05       37 阅读
  13. Ubuntu envs setting

    2024-01-05 12:06:05       33 阅读