版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第3章章 运算符、表达式与语句运算符、表达式与语句 本章导读本章导读算术运算符和算术表达式算术运算符和算术表达式关系运算符与关系表达式关系运算符与关系表达式逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式赋值运算符与赋值表达式赋值运算符与赋值表达式移位运算符移位运算符 位运算符和条件运算符位运算符和条件运算符instanceof 运算符运算符一般表达式一般表达式语句概述语句概述分支语句、循环语句和跳转语句分支语句、循环语句和跳转语句3.1 算术运算符和算术表达式算术运算符和算术表达式(1加减运算符 加减运算的运算符号分别为+和,是双目运算符。加减运算的结合性是从左到右。加减运算的操作元是整型或浮
2、点型数据,加减运算符的优先级是4级。(2乘、除和求余运算符 乘、除和求余运算的运算符号为*、/、%,都是双目运算符。*、/、% 运算符的结合性是从左到右,例如:2*3/8,先计算2*3,然后再将得到的结果除以8。乘、除和求余运算的操作元是整型或浮点型数据。*、/、%运算符的优先级是3级。 (3自增、自减运算符 自增、自减运算的运算符号为+、-,都是单目运算符,运算符的优先级是2级。运算符可以放在操作元之前,也可以放在操作元之后,但操作元必须是一个整型或浮点型变量不能是常量或表达式)。运算符的作用是使变量的值增1或减1,如: +x,-x表示在使用x之前,先使x的值加减1。 x+,x-表示在使用x
3、之后,使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,然后x的值变为6。(4算术表达式 用算术符号和操作元连接起来的符合Java语法规则的式子,称为算术表达式。如 x+2*y-30+3*(y+5) -12+n+(-n)(5算术混合运算的精度 精度从“低到“高排列的顺序是: byte short int long float double Java将按运算符两边的操作元的最高精度保留结果的精度,例如:
4、5/2的结果是2,要想得到2.5,必须写成5.0/2或5.0f/2。 char型数据和整型数据运算结果的精度是int。例如:byte k=18; 那么H+k; 的结果是int型,因此下列写法是不正确的, char ch=H+k; 应当写成: char ch=(char)(H+k);3.2关系运算符与关系表达式关系运算符与关系表达式 关系运算符用来比较两个值的关系,关系运算符的运算结果是boolean型数据,当运算符对应的关系成立时,运算结果是true,否则是false。 (1大小关系运算符 大小关系运算的符号分别是、=、=,都是双目运算符,操作元是数值型的常量、变量或表达式。 例如,101的结
5、果是true。 大小关系运算符的级别是6级。 (2等与不等关系 等与不等关系运算的符号分别是 =和 !=,都是双目运算符。运算符的级别是7级。 (3关系表达式 结果为数值型的变量或表达式可以通过关系运算符形成关系表达式。 例如,2418,(x+y+z)30+x等。3.3逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式 逻辑运算用来实现boolean型数据的逻辑“与”、“或和“非运算,运算结果是boolean型数据。 (1逻辑“与和逻辑“或” 逻辑“与和逻辑“或运算的符号是&、|,是双目运算符,操作元是boolean型的变量或求值结果是boolean型数据的表达式。&的运算法则是:当
6、两个操作元的值都是true时,运算结果是true,否则是false。|的运算法则是:当两个操作元的值都是flase时,运算结果是false,否则是true。&和|的级别分别是11和12级,结合性是左到右。短路逻辑运算符: 逻辑运算符&和|也称做短路逻辑运算符。 进行op1&op2运算时,如果op1的值是false,&运算符在运算时不再去计算op2的值,直接就得出op1&op2的结果是false。 当op1的值是true时,|运算符在运算时不再去计算op2的值,直接就得出op1|op2的结果是true。 (2 2逻辑逻辑“非非” 逻辑“非运算的符号是!,是
7、单目运算符,操作元在左面。当操作元的值是TURE时,运算结果是FALSE;反之为TURE。!的运算级别是2级,结合性从右到左。例如,!X 相当于!(!X)。(3逻辑表达式 结果为boolean型的变量或表达式可以通过逻辑运算符形成逻辑表达式。例如,2418 & 40,x!=0 | y!=0。3.4赋值运算符与赋值表达式赋值运算符与赋值表达式 赋值运算符:=。 赋值运算符是双目运算符,左面的操作元必须是变量,不能是常量或表达式。 设x是一个整型变量,y是一个boolean型变量,x=120和 y =false都是正确的赋值表达式,赋值运算符的优先级较低,是14级,结合方向右到左。 赋值表
8、达式的值就是“=”左面变量的值。注意不要将赋值运算符“=”与等号运算符“=”混淆。 3.5 移位运算符移位运算符 位运算符用来对二进制位进行操作,分为左移位操作和右移位操作。 (1左移位运算符 左移位运算的符号为,是双目运算符。左移位运算符左面的操作元称作被移位数,右面的操作数称作移位量,操作元必须是整型类型的数据。 假设a是一个被移位的整型数据,n是位移量。 an运算的结果是通过将a的所有位都左移n位,每左移一个位,左边的高阶位上的0或1被移出丢弃,并用0填充右边的低位。 例如int类型数据7的二进制表示是 00000000 00000000 00000000 00000111 可以对整型数
9、据进行移位运算:左移位或右移位运算。例如,71得到的结果是:00000000 00000000 00000000 00001110 整数 14 对于byte或short型数据,an的运算结果是int型精度。当进行 a2 运算时,计算系统首先将a升级为int型数据,对于正数将高位用0填充;负数用1填充。 注:如果把a1的结果赋值给一个byte型变量就必须进行强制转换运算: byte b=(byte)(a,是双目运算符。假设a是一个被移位的整型数据,n是位移量。 an运算的结果是通过将a的所有位都右移n位,每右移一个位,右边的低阶位被移出丢弃,并用0或1填充左边的高位,a是正数用0填充,负数时用1
10、填充。 因此,a每右移一次,如果该数的每一计算有效位都没有从低位移出时,就相当于将a除以2并舍弃了余数。整数不断右移位的最后结果一定是0,而负数不断右移位的最后结果是-1。 对于byte或short型数据,an的运算结果是int型精度。 下面的例子3-1中,显示了类型转换的结果。效果如图3-1所示.例子3-1效果图3.6位运算符位运算符 (1)“按位与运算符 &是双目运算符,对两个整型数据a、b按位进行运算,运算结果是一个整型数据c。运算法则是:如果a、b两个数据对应位都是1,则c的该位是1,否则是0。如果b的精度高于a,那么结果c的精度和b相同。 (2)“按位或运算符 |是双目运算符
11、。对两个整型数据a、b按位进行运算,运算结果是一个整型数据c。运算法则是:如果a、b两个数据对应位都是0,则c的该位是0,否则是1。如果b的精度高于a,那么结果c的精度和b相同。 (3)“按位非运算符 是单目运算符。对一个整型数据a按位进行运算,运算结果是一个整型数据c。运算法则是:如果a对应位是0,则c的该位是1,否则是0。(4 4)“按位异或运算符按位异或运算符 是双目运算符。对两个整型数据a、b按位进行运算,运算结果是一个整型数据c。运算法则是:如果a、b两个数据对应位相同,则c的该位是0,否则是1。如果b的精度高于a,那么结果c的精度和b相同。 位运算符在操作逻辑型数据时,与逻辑运算符
12、&、|、!不同的是位运算要计算完a和b之后再给出运算的结果。 在下面的例子3-2中,利用“异或运算的性质,对几个字符进行加密并输出密文,然后再解密。运行结果见图3-2。 3.7 条件运算符条件运算符 条件运算符是一个3目运算符,它的符号是:?:,需要连接3个操作元,用法如下: op1?op2:op3 要求第一个操作元op1的值必须是boolean型数据。 运算法则是:当op1的值是true时,op1?op2:op3运算的结果是op2的值;当op1的值是false时,op1?op2:op3运算的结果是op3的值。 例如,128?100:200的结果是100; 12y&x0?(x+
13、1):y) 的值是 int型数据,结果为17。3.10语句概述语句概述 Java里的语句可分为以下5类: (1方法调用语句 在第4章将介绍类、对象等概念,对象可以调用类中的方法产生行为,例如: reader.nextInt(); (2表达式语句 一个表达式的最后加上一个分号就构成了一个语句,称作表达式语句。分号是语句不可缺少的部分。例如,赋值语句: x=23; (3复合语句 可以用“”和“”把一些语句括起来构成复合语句,一个复合语句也称作一个代码块。例如, z=23+x; System.out.println(hello); (4控制语句 控制语句包括:条件分支语句、循环语句和跳转语句。 (5
14、package 语句和 import语句 package语句和import语句与类、对象有关,将在第4章讲解。 3.11分支语句分支语句 1条件分支语句条件分支语句 (1if-else语句语句. if-else语句是语句是Java中的一条语句,由一个中的一条语句,由一个“if”、“else和两个复合语句按一定格式构成,和两个复合语句按一定格式构成,if-else 语句的格式如下:语句的格式如下: if(表达式表达式) 若干语句若干语句 else 若干语句若干语句 一条一条if-else语句的作用是根据不同的条件产生不同的操作,语句的作用是根据不同的条件产生不同的操作,执行法则如下:执行法则如下
15、: if 后面后面( )内的表达式的值必须是内的表达式的值必须是boolean型的。型的。 如果表达式的值为如果表达式的值为true,则执行紧跟着的复合语句;如果,则执行紧跟着的复合语句;如果表达式的值为表达式的值为false,则执行,则执行else后面的复合语句。后面的复合语句。(2多条件多条件if-else if-else语句语句 程序有时需要根据多条件来选择某一操作,这时就可以使用if-else if-else语句。if-else if-else语句是Java中的一条语句,由一个“if”、 若干个“else if”、一个“else与若干个复合语句按一定规则构成。语句的格式如下: if(表
16、达式1) 若干语句 else if(表达式2) 若干语句 else if(表达式n) 若干语句 else 若干语句 if-else if-else语句的执行法则如下: 有时为了编程的需要,复合语句中可以没有任何语句。一条if-else if-else语句的作用是根据不同的条件产生不同的操作,执行法则如下: if 以及else if后面( )内的表达式的值必须是boolean型的。 该语句执行时,首先计算if后括号中的表达式的值,如果该表达式的值为true,则执行紧跟着的复合语句,然后就结束整个语句的执行;如果if后括号中的表达式的值为false,就依次再计算后面的else if的表达式的值,直
17、到出现某个表达式的值为true为止,然后执行该else if后面的复合语句,结束整个语句的执行。如果所有的表达式的值都是false,就执行else后面复合语句,结束整个语句的执行。 在下面的例子3中,用户在键盘输入3个数,程序判断这3个数能构成什么形状的三角形。运行结果见图3-3。 2switch开关语句开关语句 switch 语句是多分支的开关语句,它的一般格式定义如下:switch(表达式) case 常量值1: 若干个语句 break; case 常量值2: 若干个语句 break; case 常量值n: 若干个语句 break; default: 若干语句 switch语句中表达式的值
18、必须是整型或字符型;常量值1到常量值 n必须也是整型或字符型。switch语句首先计算表达式的值,如果表达式的值和某个case 后面的常量值相同,就执行该case里的若干个语句,直到碰到break语句为止。若没有任何常量值与表达式的值相同,则执行default后面的若干个语句。其中default是可有可无的,如果它不存在,并且所有的常量值都和表达式的值不相同,那么switch语句就不会进行任何处理。需要注意的是,在同一个switch语句中,case后的常量值必须互不相同。 下 面 的 例 子 4 使 用 了switch语句,用户在键盘输入一个代表月份的整数,程序输出是该月是在年度的第几季度。运
19、行结果见图3-4.例子3-4效果图3.12循环语句循环语句 1while循环 while语句的一般格式: while(表达式) 若干语句 while语句由关键字while、括号中的一个求值为boolean型数据的表达式和一个复合语句组成,其中的复合语句称作循环体,循环体只有一条语句时,大括号“”可以省略,但最好不要省略,以便增加程序的可读性。表达式称作循环条件。 while语句的执行规则是: (1计算表达式的值,如果该值是true时,就进行2),否则进行3)。 (2执行循环体,再进行1) (3结束while语句的执行 while语句执行规则如流程图3- 5所示。while语句执行规则语句执行规则 流程图流程图3- 5 do while语句执行规则语句执行规则 流程图流程图3- 6 2do-while循环循环 一般格式: do 若干语句 while(表达式); do-while循环和while循环的区别是do-while的循环体至少被执行一次,如图3.6所示。 下面的例子5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年因擅自公开他人隐私赔偿协议
- 2025年家政服务协议编写书
- 2025年增资协议停业责任
- 2025年医疗卫生合同解除协议范本
- 二零二五版实体书店股份收购合同示范文本2篇
- 2025年度活动板房安装与智能化控制系统合同3篇
- 2025年度智能门禁系统供应及安装合同3篇
- 2024版楼层套房租赁合同书
- 2025年度物流仓储园区物业管理及信息化服务协议3篇
- 2025年度教育科技股东入股协议
- 课题申报书:GenAI赋能新质人才培养的生成式学习设计研究
- 骆驼祥子-(一)-剧本
- 全国医院数量统计
- 《中国香文化》课件
- 2024年医美行业社媒平台人群趋势洞察报告-医美行业观察星秀传媒
- 第六次全国幽门螺杆菌感染处理共识报告-
- 天津市2023-2024学年七年级上学期期末考试数学试题(含答案)
- 经济学的思维方式(第13版)
- 中国绿色食品市场调查与分析报告
- 手卫生依从性调查表
- 湖北教育出版社四年级下册信息技术教案
评论
0/150
提交评论