第3章运算符、表达式和语句.ppt
《第3章运算符、表达式和语句.ppt》由会员分享,可在线阅读,更多相关《第3章运算符、表达式和语句.ppt(83页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、课程主讲人:第3章运算符、表达式和语句2第3章 运算符、表达式和语句3 33.1运算符与表达式的分类3.2语句以及基本控制结构3.3 本章小结第3章 运算符、表达式和语句4 4对数据进行加工和处理称为运算,表示各种运算的符号称为运算符,参与运算的数据称为操作数。运算符和操作数的数据类型必须匹配才能进行相应的运算。3.1运算符与表达式的分类按照运算类型,可以将运算符分成以下几类:算术运算符,关系运算符,条件运算符,逻辑运算符,赋值运算符,其它运算符。表达式是由运算符、操作数和方法调用按照语言的语法构造而成的符号序列。表达式可用于一个公式的计算,为变量赋值以及控制程序的执行流程。53.1.1 算术
2、运算符Java语言支持所有的浮点型和整数型数据进行各种算术运算。算术运算符用于完成数学上的加、减、乘、除四则运算。算术运算符包含一元和二元运算符两类。二元运算符包括+(加)、-(减)、*(乘)、/(除)和%(取余),其中前四个运算符既可以用于整数型数据,也可以用于浮点型数据,而“%”仅用于整数型数据,求两个操作数相除后的余数。63.1.1 算术运算符算术运算符的使用基本上与数学中的加减乘除一样,也是先乘除后加减,必要时加上括号表示运算的先后顺序。二元运算符的用法如表3-1。73.1.1 算术运算符一元运算符包括+(自加)、-(自减)、-(负号)。只能用于整数类型的变量,而不能用于常量或表达式。
3、“+”和“-”既可以出现在变量的左边,也可以出现在变量的右边。前置运算:+、-位于操作数之前,如+x;-x;先改变变量的值后引用。int i=5, j; j=+i; /结果为i=6,j=6下面我们来看一段简单的代码。83.1.1 算术运算符例3.1 数字和字符之间的求和,这需要将字符首先转换为相应的ASCLL码值。/Sum.javapublic class Sum public static void main(String args) int A = 10;char B = B;/ 字符B对应的ASCLL码值为66System.out.println(A + B);程序运行结果:769关系运
4、算符关系运算符用于进行两个操作数之间的比较运算。关系运算符有六种:(大于)、=(大于等于)、8 (x+y+z)6*x10关系运算符11逻辑运算符逻辑运算符是对布尔类型操作数进行的与、或、非、异或等运算,运算结果仍然为布尔类型。逻辑运算也称布尔运算。(1)逻辑“与”和逻辑“或”逻辑“与”和逻辑“或”运算都是二元运算符,操作数是boolean型的变量或求值结果为boolean型数据的表达式。“&”的运算法则是:当两个操作元的值都为true时,运算结果为true,否则为false。12逻辑运算符“|”的运算法则是:当两个操作元的值都是false时,运算结果是false;否则为true。在判断组合条件
5、时,经常使用“&”和“|”,因为“&”和“|”具有短路计算功能。所谓的短路计算功能是指在组合条件中,从左至右依次判断条件是否满足,一旦能够确定结果,就立即终止计算,不再进行右边剩余的操作。13逻辑运算符例如:false&(ab) /结果是false(3421)|(a=b) /结果是true由于false参与“&”运算,结果必然是false,就不必再计算(ab)的值;同理,(3421)的值是true,它参与“|”运算,结果必然为true,也不必再计算后面的(a=b)的值,立即结束运算,提高效率。14逻辑运算符(2)逻辑“非”逻辑“非”运算的符号是“!”,是单目运算符,操作数在左边。当操作元的值为
6、true时,运算结果为false;反之为true。结合性从左至右。(3)逻辑表达式结果为boolean型的变量或者表达式,可以通过逻辑运算符形成逻辑表达式。例如:226&32 x!=0|y!=0。15例3.2 与运算中的两个操作数相对应的位置都为1,结果才为1,否则结果为0,例如下面的程序段。/And.javapublic class And public static void main(String args) int a = 128;int b = 127;System.out.println(a 和b 逻辑与的结果是: + (a & b);程序运行结果:a 和b 逻辑与的结果是:0逻辑
7、运算符16逻辑运算符下面分析这个程序:“a”的值是128,转换成二进制就是10000000,而“b”的值是128,转换成二进制就是01111111。根据与运算符的运算规律,只有两个位都是1,结果才是1,可以知道结果就是00000000,即0。17赋值运算符赋值运算符:=。赋值运算符是双目运算符,左面的操作数必须是变量,不能是常量或表达式。赋值运算的本质是首先计算右面表达式的值,再将表达式的值赋给左边的变量。例如:int a=4, b;b=a+3;/结果,b的值为7注意:不要将赋值运算符“=”与等号运算符“=”混淆。赋值运算符看起来是比较简单的,但是需要注意“+=”、“-=”、“=”、“/=”、
8、“%=”都表示一个符号。18赋值运算符例3.3 两种赋值方式的区别。/ Compare1.javapublic class Compare1 public static void main(String args) short s = 4;s = s + 1;System.out.println(s);会出现编译错误,因为s+1得到的结果是int型的,需要改为s+=1,这样便不会报错。19赋值运算符/ Compare2.javapublic class Compare2 public static void main(String args) short s = 4;s += 1;System
9、.out.println(s);程序运行结果:5203.1.5 移位运算符 移位运算是对整数型的操作数按二进制的位进行运算,运算结果仍然是整数型数值。分为左移位操作和右移位操作。(1)左移位运算符 左移位运算符的符号为“”,是二元运算符。左移位运算符左面的操作元称为被移位数,右面的操作数称为移位量。 例如:a”,是双目运算符。假设a是一个被移位的整型数据,n是移位量。 an运算的结果是通过将a的所有位都右移n位,每右移一位,右面的低阶位都被移除丢弃,并用0或1填充左面的高位,a是正数用0填充,负数时用1填充。正数不断右移的最后结果一定是0,而负数不断右移的最后结果是-1。223.1.6 位运算
10、符(1)“按位与”运算符“&”是双目运算符,对两个整型数据a、b按位进行与运算,运算结果是一个整型数据c。运算法则是:如果a、b两个数据对应位都是1,则c的该位是1,否则是0。例如:1001001和0101001进行“与”运算,表达如下, 1001001 & 0101001 0001001 233.1.6 位运算符(2)“按位或”运算符“|”是双目运算符。对两个整型数据a、b按位进行或运算,运算结果是一个整型数据c。运算法则是:如果a、b两个数据对应位都是0,则c的该位是0,否则为1.例如:1001001和0101001进行“或”运算,表达如下, 1001001 | 0101001 11010
11、01 243.1.6 位运算符(3)“按位非”运算符“”是一元运算符。对一个整型数据a按位进行非运算,运算结果是一个整型数据c。运算法则是:如果a对应位是0,则c的该位是1,否则为0。例如:1001001进行“非”运算表达如下, 1001001 0110110 253.1.6 位运算符(4)“按位异或”运算符“”是双目运算符。对两个整型数据a、b按位进行异或运算,运算结果是一个整型数据c。运算法则是:如果a、b两个数据对应位相同,则c的该位是0,否则是1。例如:1001001和0101001进行“异或”运算,表达如下, 1001001 0101001 1100000 26条件运算符 条件运算符
12、是一个多元运算符,它的符号是“? : ”,需要连接三个操作数,用法如下:a?b:c,要求a的值必须为boolean型数据。运算法则是:当a的值为true时,a?b:c运算的结果是b的值;当a的值是false时,a?b:c运算的结果是c的值。例如:82?10:20的结果是10;83) System.out .println (a+);elseSystem.out .println(a=a-1);程序运行结果:23.2.2 程序控制结构453.2.2 程序控制结构2) if语句嵌套程序有时需要根据多条件再选择某一操作,这时就可以使用if-else if-else语句。if-else if-else
13、语句是Java中的一条语句,由一个“if”、若干个“else-if”和一个“else”与若干个复合语句按一定规则构成。语句的格式如下:463.2.2 程序控制结构if(表达式1)若干语句else if(表达式2)若干语句else if(表达式n)若干语句else若干语句473.2.2 程序控制结构 一条if-else if-else语句的作用是根据不同的条件产生不同的操作,执行规则为:if以及else if后面的括号内的表达式的值必须是boolean型的。该语句执行时,首先计算if后括号中的表达式的值,如果该表达式的值为true,则执行紧跟着的复合语句,然后就结束整个语句的执行;如果if后括号
14、中的表达式的值为false,就依次再计算后面的else if的表达式的值,直到出现某个表达式的值为true为止,然后执行该else if后面的复合语句,结束整个语句的执行。如果所有的表达式的值都是false,就执行else后面的复合语句,结束整个语句的执行。483.2.2 程序控制结构例3.6 使用if-else嵌套语句编写程序。 /NestStatement.javapublic class NestStatementpublic static void main(String args)int x = 5, y = 6;if (x 0 & x 20)y = x + 20;System.ou
15、t.println(x= + x);System.out.println(y= + y);程序运行结果:x=5y=5503.2.2 程序控制结构3)开关语句当要从多个分支中选择一个分支去执行时,虽然可以使用嵌套的if语句,但是当嵌套层太多时会使程序的可读性差。为此,java提供了多分支选择语句,即switch语句,switch语句能够根据给定表达式的值,从多个分支中选择一个分支来执行。513.2.2 程序控制结构它的格式如下:switch(表达式) case 常量1:语句序列1;break; case 常量2:语句序列2;break;case常量n:语句序列n;default:语句序列n+1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运算 表达式 语句
限制150内