




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java 2实用教程(第版)教学课件,配合例子代码一同使用 例子代码可登录下载,第章 运算符、表达式和语句,3.1 运算符与表达式 3.2 语句概述 3.3 控制语句 3.4 循环语句 3.5 跳转语句,3.1 运算符与表达式,Java 提供了丰富的运算符,如算术运算符、关系运算符符、逻辑运算符、位运算符等。本节将介绍大部分运算符。,1 算术运算符与表达式,用算术符号和括号连接起来的符合java语法规则的式子,称为算术表达式,如x+2*y-30+3*(y+5)。 加减运算符:+,-,加减运算符的结合方向是从左到右。,加减运算符的优先级是4级。 乘,除和求余运算符:*,/,%,运算符的结合方向是
2、从左到右.乘除运算符的操作元是整型或浮点型数据。*,/,%运算符的优先级是3级。 算术混合运算的精度 精度从“底”到“高”排列的顺序是: byte short int long float double Java将按运算符两边的操作元的最高精度保留结果的精度,例如: 5/2的结果是2,要想得到2.5,必须写成5.0/2或5.0f/2。,算数运算符,自增,自减运算符:+,-,自增、自减运算符是单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量。作用是使变量的值增1或减1 +x(-x)表示在使用x之前,先使x的值加(减)1。 x+(x-)表示在使用x之后,使x的
3、值加(减)1。,算数运算符的特点,对于二元运算符,运算结果的数据类型一般为两个操作数中表达范围较大的类型。例如,一个整数和浮点数运算的结果为浮点数。 对于一元运算符,运算结果的类型与操作数的类型相同。 自增、自减运算符有前缀和后缀两种形式,当是前缀形式(即+、-符号出现在变量的左侧)时,对变量实施的运算是“先运算后使用”; 当是后缀形式(即+、-符号出现在变量的右侧)时,对变量实施的运算是“先使用后运算”。,算数运算符的注意事项,在Java中,%(求模运算符)的操作数可为浮点数,如52.3%10=2.3; Java对+运算进行了扩展,可作字符串连接运算符,如ab+efd得abefd; 做+运算
4、时,如果一个操作数是字符串,其它操作数自动转换成字符串.如: String s; s=s:+4*5; 结果是s=s:20; byte,short,char等类型进行混合运算时,会先自动转换为int类型再运算。,3算术混合运算的精度,精度从“底”到“高”排列的顺序是: byte short int long float double Java将按运算符两边的操作元的最高精度保留结果的精度,例如: 5/2的结果是2,要想得到2.5,必须写成5.0/2或5.0f/2。 char型数据和整型数据运算结果的精度是int。例如: byte x=7; 那么 B+x; 的结果是int型,因此下列写法是不正确的
5、, char ch=B+x; 应当写成: char ch=(char)(B+x);,4关系运算符与关系表达式,关系运算符:,8,(x+y)80。,关系运算符,关系运算符使用注意事项,注意“=”不要写成“=” Java中,任何类型的数据(包括简单类型和复合类型),都可以通过=或!=来比较是否相等。 关系运算的结果是true和false,而不是1或0。 关系运算符的结果是布尔值,关系运算符的优先级要高于布尔运算符。,逻辑运算符与逻辑表达式,逻辑运算符包括:,例:Test.java,public class Test public static void main(String args) int
6、i=29; int j=3; float a=23.5f; double b=4.0 ; System.out.println(i+a=+(i+a); System.out.println(i*j=+(i*j); System.out.println(i/j=+(i/j); /运算结果为整数 System.out.println(i%j=+(i%j); /求余数 System.out.println(a*b=+(a*b); System.out.println(a/b=+(a/b); /运算结果为浮点数 System.out.println(a%b=+(a%b); /结果为浮点数 System
7、.out.println(i+=+(i+); / 先使用,后自增 System.out.println(+i=+(+i); / 先自增,后使用 ,7.三目条件运算符(?:),在Java语言中,三目条件运算符(?:)与C语言中的使用规则是完全一致的,使用的形式是: x ? y:z; 上面的三目条件运算的规则是:先计算表达式x的值,若x为真,则整个三目运算的结果是表达式y的值;若x为假,则整个三目运算的结果是表达式z的值。 下面的例子实现了从两个数中找出较大的数的功能。 int a=3,b=4; int max=ab?a:b; max的值为4。,8位运算符,“ b=a2; /b=4 7.运算符同样
8、是执行一个右移位,只是它执行的是不带符号的移位。也就是说对以补码表示的二进制数操作时,在带符号的右移中,右移后左边留下的空位中添入的是原数的符号位(正数为0,负数为1);在不带符号的右移中,右移后左边留下的空位中添入的一律是0。,位运算符,注意事项,除 为右结合外,其余为左结合。 操作数的类型一般为整型或字符型。 char secret=8; a1=(char)(a1secret); a2=(char)(a2secret); a3=(char)(a3secret); a4=(char)(a4secret); System.out.println(密文:+a1+a2+a3+a4); a1=(ch
9、ar)(a1secret); a2=(char)(a2secret); a3=(char)(a3secret); a4=(char)(a4secret); System.out.println(原文:+a1+a2+a3+a4); ,8instanceof 运算符,该运算符是双目运算符,左面的操作元是一个对象;右面是一个类。当左面的对象是右面的类创建的对象时,该运算符运算的结果是true ,否则是false。,9运算符综述,Java的表达式就是用运算符连接起来的符合Java规则的式子。运算符的优先级决定了表达式中运算执行的先后顺序。例如,xc) t=a; a=c; c=t; if(bc) t=b
10、; b=c; c=t; System.out.println(a=+a+,b=+b+,c=+c); ,例子:成绩统计,public class Example3_4 public static void main(String args) int math=65 ,english=85; if(math60) System.out.println(数学及格了); else System.out.println(数学不及格); if(english90) System.out.println(英语是优); else System.out.println(英语不是优); System.out.pr
11、intln(我在学习控制语句); ,2 switch开关语句,switch 语句是多分支的开关语句,它的一般格式定义如下(其中break语句是可选的): switch(表达式) case 常量值1: 若干个语句 break; case 常量值2: 若干个语句 break; . case 常量值n: 若干个语句 break; default: 若干语句 ,switch注意事项1/2,表达式expression必须为byte,short,int或char类型(数据类型长度小于等于32位),在JDK5.0中可以是用枚举类型(enum)。 每个case语句后的值value必须是与表达式类型兼容的特定的
12、一个常量(它必须为一个常量,而不是变量)。重复的case值是不允许的。,switch注意事项2/2,如果没有一个case常量与表达式的值相匹配,则执行default语句。 case语句只是起到一个标号作用,用来查找匹配的入口并从 此处 开始执行其后的语句序列. 在case语句序列中的break语句将引起程序流从整个switch语句退出。当遇到一个break语句时,程序将从整个switch语句后的第一行代码开始继续执行,这有一种“跳出” switch语句的效果。如果没有遇到break语句,switch语句将一直执行到结束。,例子,public class test public static v
13、oid main(String args) int i; int month=Integer.parseInt(args0); String season; switch (month) case 12: case 1: case 2: season = 冬天; System.out.println(season); break; case 3: case 4: case 5: season = 春天; System.out.println(season); case 6: case 7: case 8: season = 夏天; System.out.println(season); cas
14、e 9: case 10: case 11: season = 秋天; System.out.println(season); ,3.4 循环语句,循环结构是程序中一种重要的基本结构,是指在一定的条件下反复执行某段程序,被反复执行的这段程序称为“循环体”。 Java中有三种语句来实现循环结构,分别是while,do-while和for语句。 它们的结构分别如图3-4所示。,for循环语句,1for循环语句 for语句是三个循环语句中功能最强,使用最广泛的一个。for语句的格式如下: for(表达式1;表达式2;表达式3) 循环体语句; 表达式1一般是一个赋值语句,它用来给循环控制变量赋初值;表
15、达式2是一个布尔类型的表达式,它决定什么时候退出循环;表达式3一般用来修改循环变量,控制变量每循环一次后按什么方式变化。这三个部分之间用“;”分开。 for语句的结构如图3-4(c)所示。,for循环语句,for语句的执行过程: (1)在循环刚开始时,先计算表达式1,在这个过程中,一般完成的是初始化循环变量或其它变量。 (2)根据表达式2的值来决定是否执行循环体。表达式2是一个返回布尔值的表达式,若该值为假,将不执行循环体,并退出循环;若该值为真,将执行循环体。 (3)执行完一次循环体后,计算表达式3。在这个过程中一般会修改循环变量。 (4)转入第(2)步继续执行。,例子:,int sum =
16、 0, i = 0; for (i = 101; i = 200; i+) sum += i; System.out.println(the sum is + sum);,for的其它用法,在for循环内声明变量 在for循环中使用逗号,for (int a = 1, b = 4; a b; a+, b-) System.out.println(a = + a); System.out.println(b = + b); ,2while 循环 while语句的格式如下: while(条件表达式) 循环体语句; 在循环刚开始时,会计算一次“条件表达式”的值。当条件为假时,将不执行循环体,直接跳转
17、到循环体外,执行循环体外的后续语句;当条件为真时,便执行循环体。每执行完一次循环体,都会重新计算一次条件表达式,当条件为真时,便继续执行循环体,直到条件为假才结束循环。while语句的结构如图3-4(a)所示。,public class SampleWhile public static void main(String args) int sum = 0, i = 100; while (i 200) i+; sum += i; System.out.println(the sum is “ + sum); ,While语句,3do-while循环,do-while语句的格式如下: do 循
18、环体语句; while(条件表达式) do-while循环与while循环的不同在于:它先执行循环中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。 do-while语句的结构如图3-4(b)所示。,public class SampleDowhile public static void main(String args) int sum = 0, i = 100; do i+; sum += i; while (i 200); System.out.println(the sum is + sum); ,3do-w
19、hile循环,3.5 跳转语句,Java语言支持3种类型的跳转控制语句:break、continue和return。使用这些语句,可把控制转移到程序的其他部分。 break语句 continue语句 return语句,break,在Java中,break语句有3种作用。 第一,在switch语句中,它被用来终止一个语句序列或者语句块。 第二,它能被用来退出一个循环。 第三,它能作为一种“先进”的goto 语句来使用。,break语句1/2,使用break 退出循环,for (int i = 0; i 3; i+) System.out.print(Pass + i + : ); for (in
20、t j = 0; j 100; j+) if (j = 10) break; System.out.print(j + ); System.out.println(); ,break语句2/2:/BreakLabel.java,把break 当作goto 的一种形式来用 boolean t = true; first: second: third: System.out.println(Before the break.); if (t) break second; System.out.println(This wont execute); System.out.println(This w
21、ont execute); System.out.println(This is after second block.); ,continue,break只不过是跳过循环体,到达循环的尾部。continue语句是break语句的补充。在while和do while循环中,continue语句使控制直接转移给控制循环的条件表达式,然后继续循环过程。在for循环中,循环的迭代表达式被求值,然后执行条件表达式,循环继续执行。对于这3种循环,continue后面的语句被忽略。,使用continue 语句1/2,终止本次循环继续下一次循环,for (int i = 1; i 20; i+) System.out.print(i + ); if (i % 5 != 0) continue; System.out.println(); ,使用continue 语句2/2:,continue带标号:/Continue
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 泵类销售员岗位面试问题及答案
- 保安队长岗位面试问题及答案
- 自动化测试工程师岗位面试问题及答案
- 游戏数值策划师岗位面试问题及答案
- 浙江省丽水市四校联考2025届高二下化学期末达标检测试题含解析
- 安徽师范大学附中2025届高二下化学期末达标检测试题含解析
- 2025届山西省同煤一中联盟校高一下化学期末联考试题含解析
- 2025届浙江宁波市北仑区高二化学第二学期期末达标检测模拟试题含解析
- 公用澡堂制度管理办法
- 幼儿园户外活动管理:现状与对策探讨
- 专题:阅读理解 30篇 中考英语高分提升之新题速递第二辑【含答案+解析】
- 企业面试题目和答案大全
- 抖音房产直播课件
- 2025至2030中国近视眼治疗仪市场竞争力剖析及企业经营形势分析报告
- 2025年高考化学试卷(广东卷)(空白卷)
- 体育老师招聘试题及答案
- 自然生态探险之旅行业跨境出海项目商业计划书
- 2025年北京市高考英语试卷真题(含答案解析)
- 西藏自治区拉萨市达孜区孜县2025年七下英语期中质量检测模拟试题含答案
- 辽宁省沈阳市2023−2024学年高二下册期末考试数学试卷2附解析
- 厨师三级考试试题及答案
评论
0/150
提交评论