博客
关于我
JAVA运算优先级
阅读量:348 次
发布时间:2019-03-04

本文共 1143 字,大约阅读时间需要 3 分钟。

Java运算符优先级是编程中理解表达式执行顺序的关键。每当表达式中包含多个运算符时,运算符的优先级决定了运算顺序,从而影响最终结果。掌握运算符的优先级可以帮助开发者更好地组织代码,避免逻辑错误。

运算符可以根据优先级分为几大类:

  • 后缀运算符:包括括号 ()、数组索引 []、对象引用 . 和类型转换 ()。这些运算符通常按从左到右的顺序执行。
  • 一元运算符:包括加法 +、减法 -、逻辑非 !、否定 !~ 等。这些运算符通常从右到左执行。
  • 乘法运算符:包括乘法 *、除法 /、模运算 等。这些运算符按从左到右的顺序执行。
  • 加法运算符:包括加法 + 和减法 -。这些运算符同样按从左到右的顺序执行。
  • 移位运算符:包括右移 >>、右移双 >>> 和左移 <<、左移双 <<<。这些运算符按从左到右的顺序执行。
  • 关系运算符:包括大于 >>、小于 <、等于 = 等。这些运算符按从左到右的顺序执行。
  • 相等性运算符:包括等于 == 和不等于 !=。这些运算符同样按从左到右的顺序执行。
  • 按位运算符:包括按位与 &、按位异或 ^ 和按位或 |。这些运算符按从左到右的顺序执行。
  • 逻辑与运算符:包括逻辑与 &&,这些运算符按从左到右的顺序执行。
  • 逻辑或运算符:包括逻辑或 ||,这些运算符同样按从左到右的顺序执行。
  • 条件运算符:包括条件 ?,这些运算符按从右到左的顺序执行。
  • 赋值运算符:包括多种赋值运算符,如加法赋值 +=、减法赋值 -= 等,这些运算符按从右到左的顺序执行。
  • 逗号运算符:包括逗号 ,,,这些运算符按从左到右的顺序执行。
  • 在实际编码中,运算符的优先级决定了表达式的执行顺序。例如,表达式 x = 7 + 3 * 2; 中,乘法运算符的优先级高于加法运算符,因此会先计算 3 * 2,然后将结果加到 7 中,得到 x = 13

    需要注意的是,运算符的优先级并不是唯一的规则。小括号 () 是控制运算顺序的最高优先级工具。合理使用小括号可以清晰地定义运算顺序,避免因运算符优先级不明确而导致的歧义性问题。

    例如,表达式 a || b && c 中,逻辑或运算符的优先级低于逻辑与运算符,因此会先计算 b && c 再与 a 进行逻辑或运算。这样可以避免误解为 (a || b) && c

    在编写代码时,建议遵循以下原则:

    • 先括号后运算符:使用小括号明确运算顺序。
    • 先一元运算符后乘法:根据运算符的优先级规则,先执行乘法、除法、移位、按位运算等运算符。
    • 谨慎使用逻辑运算符:在逻辑运算符中,记得逻辑与运算符的优先级高于逻辑或运算符,并且逻辑非运算符的优先级最高。

    通过理解和遵循运算符的优先级规则,开发者可以更高效地组织代码,避免运算顺序导致的逻辑错误,提升代码的可读性和可维护性。

    转载地址:http://pzzr.baihongyu.com/

    你可能感兴趣的文章
    npm发布自己的组件UI包(详细步骤,图文并茂)
    查看>>
    npm和package.json那些不为常人所知的小秘密
    查看>>
    npm和yarn清理缓存命令
    查看>>
    npm和yarn的使用对比
    查看>>
    npm如何清空缓存并重新打包?
    查看>>
    npm学习(十一)之package-lock.json
    查看>>
    npm安装 出现 npm ERR! code ETIMEDOUT npm ERR! syscall connect npm ERR! errno ETIMEDOUT npm ERR! 解决方法
    查看>>
    npm安装crypto-js 如何安装crypto-js, python爬虫安装加解密插件 找不到模块crypto-js python报错解决丢失crypto-js模块
    查看>>
    npm安装教程
    查看>>
    npm报错Cannot find module ‘webpack‘ Require stack
    查看>>
    npm报错Failed at the node-sass@4.14.1 postinstall script
    查看>>
    npm报错fatal: Could not read from remote repository
    查看>>
    npm报错File to import not found or unreadable: @/assets/styles/global.scss.
    查看>>
    npm报错TypeError: this.getOptions is not a function
    查看>>
    npm报错unable to access ‘https://github.com/sohee-lee7/Squire.git/‘
    查看>>
    npm淘宝镜像过期npm ERR! request to https://registry.npm.taobao.org/vuex failed, reason: certificate has ex
    查看>>
    npm版本过高问题
    查看>>
    npm的“--force“和“--legacy-peer-deps“参数
    查看>>
    npm的安装和更新---npm工作笔记002
    查看>>
    npm的常用操作---npm工作笔记003
    查看>>