《Java运算符、表达式、语句.pptx》由会员分享,可在线阅读,更多相关《Java运算符、表达式、语句.pptx(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1Java运算符、表达式、语句学习目标F掌握赋值运算符的使用F掌握算术运算符的使用F掌握关系运算符的使用F掌握递增与递减运算符的使用F掌握逻辑运算符的使用F掌握括号运算符的使用F掌握位运算符的使用F掌握各个运算符的优先级运算符 FJava中的语句有很多种形式,表达式就是其中一种形式。表达式是由操作数与运算符所组成:操作数可以是常量、变量也可以是方法,而运算符就是数学中的运算符号,如“+”、“-”、“*”、“/”、“%”等。以下面的表达式(z+100)为例,“z”与“100”都是操作数,而“+”就是运算符。赋值运算符号 No.赋值运算符号赋值运算符号描述描述1=赋值一元运算符 No.一元运算符一
2、元运算符描述描述1+正号2负号3!NOT,否算术运算符 No.算术运算符算术运算符描述描述1+加法2减法3*乘法4/除法5%取模(取余数)关系运算符 No.关系运算符关系运算符描述描述1大于2=大于等于4=小于等于5=等于6!=不等于递增与递减运算符 No.自增与自减运算符自增与自减运算符描述描述1+自增,变量值加12-自减,变量值减1逻辑运算符 No.逻辑运算符逻辑运算符描述描述1&AND,与2&短路与3|OR,或4|短路或AND及 OR结果表 No.条件条件1条件条件2结果结果&(与)(与)|(或)(或)1truetruetruetrue2truefalsefalsetrue3falset
3、ruefalsetrue4falsefalsefalsefalse关于“&”与“&”、“|”与“|”的说明F“&”与“&”&表示短路与对于“与”来说,要求所有的条件都判断,而如果使用“短路与”如果第一个条件为false,则后面的条件将不再判断。F“|”与“|”|表示短路或对于“或”来说,要求所有的条件都判断,而如果使用“短路或”如果第一个条件为true,则后面的条件将不再判断。括号运算符 No.括号运算符括号运算符描述描述1()提高括号中表达式的优先级位运算符 No.逻辑运算符逻辑运算符描述描述1&按位与2|按位或3异或(相同为0,不同为1)4取反5右移位7无符号右移位位运算的结果表 No.二
4、进制数二进制数1二进制数二进制数1与操作(与操作(&)或操作(或操作(|)异或操作(异或操作()100000201011310011411110位运算 public class OperatorDemo15 public static void main(String args)int x=3;/3的二进制数据:00000000 00000000 00000000 00000011int y=6;/6的二进制数据:00000000 00000000 00000000 00000110System.out.println(x&y);/与操作的结果:00000000 00000000 000000
5、00 00000010System.out.println(x|y);/或操作的结果:00000000 00000000 00000000 00000111System.out.println(x y);/异或操作结果:00000000 00000000 00000000 00000101操作步骤求出负数的反码 public class OperatorDemo16 public static void main(String args)int x=-3;/-3的二进制数据:11111111 11111111 11111111 11111101System.out.println(x+的反码是
6、:+x);左移和右移F在Java中也提供了左移“”两种操作。左移操作是将运算数的二进制码整体左移指定位数,左移之后的空位使用0来填充 右移操作“”是将运算数的二进制码整体右移,右移之后空出来的位置以符号位填充。如果是整数使用“0”填充,如果是负数使用“1”填充。左移操作 public class OperatorDemo17 public static void main(String args)int x=3;/3的二进制数据:00000000 00000000 00000000 00000011System.out.println(x+左移2位之后的内容:+(x 2);System.out
7、.println(y+右移2位之后的内容:+(y 2);无符号右移 F以上的右移操作属于带符号位的右移操作,在Java中也提供了无符号的右移操作符“”,使用此操作将以“0”填充空出来的位。无符号右移 public class OperatorDemo19 public static void main(String args)int x=3;/3的二进制数据:00000000 00000000 00000000 00000011int y=-3;/-3的二进制数据:11111111 11111111 11111111 11111101System.out.println(x+右移2位之后的内容
8、:+(x 2);System.out.println(y+右移2位之后的内容:+(y 2);运算符的优先级 优先级优先级运算符运算符类类结合性结合性1()括号运算符由左至右1方括号运算符由左至右2!、+(正号)、-(负号)一元运算符由右至左2位逻辑运算符由右至左2+、-递增与递减运算符由右至左3*、/、%算术运算符由左至右4+、-算术运算符由左至右5位左移、右移运算符由左至右6、=、=关系运算符由左至右7=、!=关系运算符由左至右8&(位运算符AND)位逻辑运算符由左至右9(位运算符号XOR)位逻辑运算符由左至右10|(位运算符号OR)位逻辑运算符由左至右11&逻辑运算符由左至右12|逻辑运算
9、符由左至右13?:三目运算符由右至左14=赋值运算符由右至左简洁的表达式 No.运算符运算符范例用法范例用法说明说明描述描述1+=a+=ba+b的值存放到a中a=a+b2-=a-=ba-b的值存放到a中a=a-b3*=a*=ba*b的值存放到a中a=a*b4/=a/=ba/b的值存放到a中a=a/b5%=a%=ba%b的值存放到a中a=a%b简洁表达式的范例 No.运算符运算符范例范例执行前执行前说明说明执行后执行后abab1+=a+=b123a+b的值存放到a中(同a=a+b)1532-=a-=b123a-b的值存放到a中(同a=a b)933*=a*=b123a*b的值存放到a中(同a=a*b)3634/=a/=b123a/b的值存放到a中(同a=a/b)435%=a%=b123 a%b 的值存放到a中(同a=a%b)036b+a*=b+123a*b的值存放到a后,b加1(同a=a*b;b+)3647+ba*=+b123 b加1后,再将a*b的值存放到a(同b+;a=a*b)4848b-a*=b-123a*b的值存放到a后,b减1(同a=a*b;b-)3629-ba*=-b123 b减1 后,再将a*b的值存放到a(同b-;a=a*b)242
限制150内