鱼C论坛

 找回密码
 立即注册
查看: 6215|回复: 5

[系列教程] 【Java 教程(原创)】010.运算符与表达式(上)

[复制链接]
发表于 2017-1-15 16:59:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 零度非安全 于 2017-1-19 14:40 编辑

【Java 教程(原创)】索引帖

Java 提供了丰富的运算符,如 算术运算符关系运算符逻辑运算符 位运算符 等。


                               
登录/注册后可看大图


算术运算符与算术表达式


1> 加、减运算符
加、减运算符 +、- 是二目运算符,即连接两个操作元的运算符。加、减运算符的结合方式是从左到右。例如 2 + 3 - 8,先计算 2 + 3,然后再将得到的结果减 8。加、减运算的操作元是整型或浮点型数据,加、减运算符的优先级是 4 级。

2> 乘、除和求余运算符
乘、除操作和求余运算符 *、/、% 是二目运算符,结合方向是从左到右。例如 2 * 3 / 8,先计算 2 * 3,然后再将得到的结果除以 8。乘、除和求余运算符的操作元是整型或浮点型数据,乘、除和求余运算符的优先级是 3 级。

用算术符号和括号连接起来的符合 Java 语法规则的式子称为算术表达式,如 x + 2 * y - 30 + 3 * (y + 5)

自增、自减运算符

自增、自减运算符 ++、-- 是单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量,作用是使变量的值增 1或减 1。例如:
++ x(-- x) 表示在使用 x 之前,先使 x 的值增(减) 1。
x ++(x --) 表示在使用 x 之后,使 x 的值增(减) 1。
粗略的看,++ x x ++ 的作用相当于 x = x + 1。但 ++ x x ++ 的不同之处在于,++ x 是先执行 x = x + 1 再使用 x 的值,而 x ++ 是先使用 x 的值.再执行 x = x + 1。如果 x 的原值是 5,则:
对于“y = ++ x;”,y 的值为 6,
对于“y = x ++;”,y 的值为 5。
算术混合运算的精度

精度从“低”到“高”的排列顺序是 byte、short、char、int、long、float、double

Java 在计算算术表达式的值时,使用下列计算精度规则:
如果表达式中有双精度浮点数(double 型数据),则按双精度进行运算。例如,表达式 5.0/2 + 10 的结果是 12.5 是 double 型数据。
如果表达式中最高精度是单精度浮点数(float 型数据),则按单精度进行运算。例如,表达式 5.0F/2 + 10 的结果 12.5 是 float 型数据。
如果表达式中最高精度是 long 型整数,则按 long 精度进行计算。例如,表达式 12L + 100 + 'a' 的结果 209 是 long 型数据。
如果表达式中的最高精度低于 int 型整数,则按 int 精度进行运算。例如,表达式 (byte)10 + 'a' 和 5/2 的结果分别为 107 和 2,都是 int 型数据。
关系运算符与关系表达式

关系运算符是二目运算符,用来比较两个值得关系,关系运算符的结果是 boolean 型,当运算符对应的关系成立时,运算结果是 true,否则是 false。例如,10 < 9的结果是false,5 > 1的结果是 true,3!= 5的结果是 true,10 > 20 -17 的结果是 true(因为算术运算符的级别高于关系运算符,10 > 20 -17相当于 10 > (20 - 17),其结果是 true。

结果为数值型的变量或表达式可以通过关系运算符(如下表所示)形成关系表达式。例如,4 > 8(x + y) > 80等。

             运   算   符              优   先   级              用          法            含  义             组 合 方 向
                   >                     6              op1  >  op2              大于               从左到右
                   <                     6             op1  <  op2              小于              从左到右
                  >=                     6              op1 >= op2          大于等于               从左到右
                  <=                     6             op1 <= op2         小于等于               从左到右
                  ==                     7              op1 == op2              等于               从左到右
                 !=                     7              op1 ! = op2            不等于               从左到右

逻辑运算符与逻辑表达式


逻辑运算符包括 &&、||、!。其中,&&、|| 为二目运算符,实现逻辑与、逻辑或运算;! 为单目运算符,实现逻辑非运算。逻辑运算符的操作元必须是 boolean 型数据,逻辑运算符可以用来连接关系表达式。下表给出了逻辑运算符的用法和含义。

            运  算  符              优  先  级               用     法            含   义               结  合  方  向
                &&                   11          op1 && op2           逻辑与                 从左到右
                 | |                   12          op1  | |  op2           逻辑或                 从左到右
                  !                    2                ! op           逻辑非                 从右到左

结果为 boolean 型的变量或表达式可以通过逻辑运算形成逻辑表达式。下表给出了逻辑运算符的用法和含义。

                op1                      op2                    op1 && op2                op1 || op2           ! op1
               true               true                     true                     true           false
               true               false                     false                     true           false
               false               true                     false                     true           true
               false               false                     false                     false           true

例如,2 > 8 && 9 > 2的结果为 false,2 > 8 || 9 > 2的结果为 true。由于关系运算符的级别高于 &&、|| 的级别,2 > 8 && 9 > 2 相当于 (2 > 8) && (9 > 2)

逻辑运算符 && 和 || 也称为短路逻辑运算符,这是因为当 op1 的值是 false 时,&& 运算符在进行运算时不再去计算 op2 的值,直接得出 op1 && op2 的结果是 false;当 op1 的值是 true 时,|| 运算符在进行运算时不再去计算 op2 的值,直接得出 op1 || op2 的结果是 true。

赋值运算符与赋值表达式


赋值运算符“=”是二目运算符,左面的操作元必须是变量,不能是常量或表达式。设 x 是一个整型变量,y 是一个 boolean 型变量,x = 20 和 y = true 都是正确的赋值表达式,赋值运算符的优先级较低,是 14 级,结合方向为从右到左。

赋值表达式的值就是“=”左边变量的值,假如 a、b 是两个 int 型变量,那么表达式 b = 12 和 a = b = 100 的值分别是12 和 100。

注意,不要将赋值运算符“=”与等号关系运算符“==”混淆。例如,12 = 12 是非法的表达式,而表达式 12 == 12 的值是 true。

更多内容详见下一讲。


【特别注意】贴子中的栗子希望鱼油们能自觉的手动敲上去,不要单纯的复制粘贴保存,然后编译运行。




本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-1-23 12:06:19 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-1-23 13:38:06 | 显示全部楼层

共同学习,共同进步
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-20 11:53:45 | 显示全部楼层
每次都可以解决之前的一些知识误区,赞
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-16 16:13:50 | 显示全部楼层
010 打卡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-15 21:08:50 | 显示全部楼层
谢谢讲解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 07:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表