java程序设计》第2讲.ppt_第1页
java程序设计》第2讲.ppt_第2页
java程序设计》第2讲.ppt_第3页
java程序设计》第2讲.ppt_第4页
java程序设计》第2讲.ppt_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java语言程序设计 河南科技专修学院 辛凤凡 Date1 第2章 运算和语句 Date2 本章总体纲要 数据运算 语句 Java程序实例 Date3 数据运算 赋值运算(简单 复合) 算术运算 自增自减运算 (单目) 关系运算 逻辑运算 条件运算 (三目) 其他运算 Date4 Java运算符 赋值类运算符 算术运算符 自增自减运算符 关系运算符 布尔逻辑运算符 条件运算符 其他运算符(位运算符 、移位) Date5 1. 赋值类运算符 简单赋值运算符 不是相等() int j=3; double y=2.0; y=j; (类型自动转 换)从简单到复杂的转换 赋值运算也有值 y=j=3; 结合性: 自右至左 Date6 1. 赋值类运算符 复合赋值类运算符 包括:+=、-=、*=、/=、 例如: a=a+b;等价于a+=b; Date7 2. 算术运算符 算术运算符包括: (取正), (取负) (单目运算) +, -, *, /, % (双目运算) 注意事项: 当操作数是定点类型数据时,应当注意运算 是否会溢出 int i=123456; i=i*i; /溢出 整数除法:截去余数 7 / 5 结果为 1 考虑除数是否可能为0或很小的数 Date8 取模:返回余数,可以对定点或浮点 数进行取模运算 7 % 5 结果为 2;15.25%(-0.5)结果 为0.25 Date9 练习 -7 / 5 = -7 % 5 = 7 % -5 = 5.5 % 1.0 = -1 -2 2 0.5 Date10 3.自增自减运算(单目) 自增(+)和自减(-):操作数必须是变 量;有前置和后置两种运算 int n=3; int i=n+, j=n-; / i=3,j=4,n=3 int k=+n, m=-n; / k=4,m=3,n=3 Date11 3.自增自减运算 前缀 和后缀, 对变量本身,效果相同 ;但表达式的值不相同。 i=5; +i; i-; 运算对象只能是变量,不能是常量或表 达式 , 如: 7+;(i+j) 都是非法的 。 Date12 4. 关系运算符 关系运算符包括: 、=、= 和 != ,关系运算生成一个布尔结果。 例如: 1 2; / false 3.5 != 1; / true 51.5 = 23.0; / true 540 = 65) (birthday = true) | (+age = 65) Date16 短路规则 ( a=b=c=1; boolean w; w=+a1|+b=0) ? 1 : -1; 条件运算符的结合性为“自右至左”。 例如: x y ? x : u v ? u : v 等价于 x y ? x : (u v ? u : v) Date18 7. 其他运算符 位运算 移位运算 运算的优先级 () 类型强制转换运算 Date19 位运算符和移位 位运算符包括: /apple笔记本市场份额 double rise = 9.8; /增长的份额 int now = before + rise; /现在的份额 int now = before + (int)rise; 去年Apple笔记本所占的市场份额是20,今年增长的市场份额是 9.8,求今年所占的份额? 编译出错:不能完成 自动类型转换 (类型名)表达式 强制类型转换 int b = (int)10.2; double a = 10; int c = (int)a; 其它运算符包括:(类型)、()、 .、 、 更改为 强制类型转换 Date22 算符优先 当一个表达式中存在多个运算符时,运算符的优先 级决定了个部分的计算顺序。Java对运算符的优先 级做了特别规定。 程序员经常会忘记运算符的优先规则,所以应该用( )来明确规定计算顺序使表达式更容易理解。 例如: a + b + c / 3 (a + b + c ) / 3 Date23 C+中引入了运算符重载,使得c+程序员可以为几 乎所有运算符增加功能,而Java认为此项特性过于 复杂,所以Java程序员不能像C+程序员那样实现 自己的重载操作符。 但是+和+=操作符除了一般算术运算的用途外,还可 用于连接不同的字符串。 在C和C+中,sizeof()运算符可以告诉我们为数据 分配的字节数,C和C+需要这个运算符的最大原因 是为了“移植”,不同数据类型在不同机器上可能有 不同的大小,在进行一些与存储空间有关的运算时 ,程序员必须获悉哪些类型具体有多大。而Java则 不需要,因此,Java中没有sizeof()运算符。 Date24 本章总体纲要 数据运算 语句 Java程序实例 Date25 语句 基本语句 复合语句 控制结构语句(顺序、选择、循环) Date26 基本语句 表达式语句 k=k+2; 空语句 ; break语句 break; 用于循环或选 择 continue语句 continue;同上 return语句 return;return 表达式 ; 该语句的执行将结束方法的执行, 只能出现在方法体中 Date27 复合语句 用花括号引起来的两条或两条以上语句 , 顺序执行但作为一个整体。 在复合语句中可以定义自己专用的临时 变量 Date28 控制结构 if语句和if-else语句 switch语句 for语句 while语句 do-while语句 break语句 continue语句 return语句 Date29 true和false 选择或循环结构中,都根据布尔表达式的真或假来 决定执行路径。 注意:Java不允许将一个数字作为布尔值使用,这 与c或c+不同。 例如:当要表达“如果a不等于0”这个条件 不能写作 if(a) 而要写作 if(a!=0) Date30 if语句 if语句的格式是: if (布尔表达式) 语句 或 if (布尔表达式) 一条或多条语句 例如: if ( score = 60 ) System.out.println( “Passed“ ); / Here could be a statement block. 表达 式 语句 假 真 Date31 if-else语句 if-else语句的格式是: if (布尔表达式) 语句1或语句块1 else 语句2或语句块2 例如: if (score = 60) System.out.println(“Passed!“); else System.out.println(“Failed!“); 真 表达 式 语句1 假 语句2 Date32 if-else语句 标准嵌套if-else控制结构可实现多路选择,用在想从 多个候选项中选择且只选出一项时。 例如: if (score90) System.out.println(“A”) ; else if (score=80) System.out.println(“B”) ; else if (score=60) System.out.println(“C”) ; else System.out.println(“F”) ; 假 真 真 假 表达式 1 语句1 表达式 2 语句2语句3 Date33 if-else语句 当使用if-else嵌套实现多分支选择结构时,注意if和 else的匹配采用最近原则,即else子句与最近的前一 个未匹配的if子句配对。 例如: if ( condition1 ) if ( condition2 ) system.out.println (“One”) ; else system.out.println (“Two”) ; 缩进可以提高程序的可读性,但不影响程序的逻辑 。 Date34 switch (表达式) case 常量 1: 语句组1; break; case 常量 2: 语句组2; break; default: 语句; 什么是switch结构 计算表达式的值 如果等于常量1 如果等于常量2 如果没有找到匹配的值 Date35 switch语句 switch表达式的数据类型可以是基本类型 char、byte、short、int;或是这四种基本 类型相对应的包装类java.lang.Character、 java.lang.Byte、java.lang.Short、 java.lang.Integer或enum枚举类型。 跟在case后的必须是常量表达式,其值的类 型应当与switch表达式的数据类型相匹配。 Date36 常见错误 int mingCi = 1; switch (mingCi) case 1: System.out.println(“出任武林盟主“); case 2: System.out.println(“出任武当掌门“); case 3: System.out.println(“出任峨嵋掌门“); default: System.out.println(“被逐出师门“); 输出结果是什么? 如果需要每个case执行完后跳出, 在每个case后不要忘记写break; Date37 常见错误 int mingCi = 1; switch (mingCi) case 1: System.out.println(“出任武林盟主“);break; case 2: System.out.println(“出任武当掌门“);break; case 2: System.out.println(“出任峨嵋掌门“);break; default: System.out.println(“被逐出师门“); case后面的常量必须各不相同 代码错误 Date38 常见错误 String day = “星期一“; switch (day) case “星期一“: System.out.println(“星期一:青菜 “); break; case “星期二“: System.out.println(“星期二:鱼 “); break; default: switch后面小括号中表达式的值必 须是整型或字符型 代码错误 Date39 trycatch语句 Java提供了一种异常的机制协助程序报告和处 理错误 异常就是在程序的运行过程中所发生的不正常 的事件,它会中断正在运行的程序 Try标识一个可能会发生异常的语句块 Catch标识一个处理异常的语句块 Finally标识一个无论try块中语句异常是否发生 都会执行的语句块。 异常! 程序运行程序中断运行 Date40 trycatch 语句格式 try 语句块/执行该语句块,可能会发生异常 catch (异常类型e) 异常发生时要执行的语 句块 finally 无论异常发生与否,都要执行的语 句块 Date41 什么是循环: 打印50份试卷10000米赛跑旋转的车轮 循环结构的特点 循环结构 循环条件 循环操作 锲而不舍地学习 生活中的循环 Date42 while语句 while语句的格式: while (布尔表达式) 语句或语句块 当条件(布尔表达式)为true ,则不断地执行语句或语 句块 “while” 循环的中止条件是布尔表达式变为 false 如果布尔表达式一开始就为false,则不执 行循环体 int counter=1, sum=0; while(counter 5 ) System.out.println(“欢迎 新同学“); i +; 注意:如果一开始条件就不满足,while循环一次都不执行 i ; ; ) ; 不能省略 可省略 表达式1省略,循环变量 的初始值在for语句之前 由赋值语句取得 Date51 for循环常见问题 for(int i=0;i+) System.out.println(“这是 “+i); 编译正确,但是缺少 循环条件,造成死循环 Date52 for循环常见问题 for(int i=0;i10;) System.out.println(“这是 “+i); i+; 省略表达式3,在循环体内应设法改 变循环变量的值以结束循环 编译通过,但是循环变量的 值无变化,造成死循环 Date53 for循环常见问题 for(;) System.out.println(“这是测试“); 表达式全省略,无条件判断,循环变量无改变, 应在循环体内设法结束循环,否则会造成死循环 死循环 Date54 为什么需要break语句 int i = 2; switch(i) case 1: System.out.println(“星期一“); break; case 2: System.out.println(“星期二“); break; /其他语句 遇到break,立即跳出switch语句 回顾break用于switch语句 描述4000米长跑比赛 for (int i = 0; i10; i+) 跑400米; if(不能坚持) break; /退出 第8圈, 快累死了 我要退出 Date55 什么是break语句 break:改变程序控制流 用于do-while、while、for中时,可跳出循 环而执行循环后面的语句 while() break; 跳出整个循环 break通常在循 环中与条件语句 一起使用 Date56 什么是continue语句 continue :只能用在循环里 continue 作用:跳过循环体中剩余的语句而 执行下一次循环 while() continue; 继续下一次循环 通常与条件语句一起使 用,加速循环 for(int i = 0; i10;i+) 跑400米; if(!口渴) continue; /不喝水 ,继续跑 接过水壶,喝水; 示例 Date57 循环结构总结 到目前为止所学的循环结构有哪些? 需要多次重复执行一个或多个任务的问题考虑使用 循环来解决 Date58 循环总结 int i=0; int sum=0; while( i10 ) sum=sum+i; i+; int i=0; int sum=0; do sum=sum+i; i+; while(i10); int sum=0; for(int i=0;i10;i+) sum=sum+i; 1 2 3 4 1 2 3 4 12 3 4 while和for相同,先进行判断,后执行循环体内容 do-while是先执行,后判断,至少执行一次 指出各种循环结构的执行顺序 Date59 嵌套的循环结构 for循环的嵌套 while循环的嵌套 dowhile循环的嵌套 以上三个任意之间的嵌套 Date60 return语句 return语句的格式是: return ;或 return 表达式; return关键词有两方面用途: 指定一个方法返回什么值 结束当前方法的执行,将控制返回到方法调 用处 返回值为void的方法可以不写return语句,但是, 如果一个方法声明它将返回void之外的其他值,那 么必须确保每一条代码路径都将返回一个指定类型 的值。 Date61 控制流语句小结 顺序结构:语句顺序执行 分支结构:语句在满足条件下执行 if, if-else, if-else if-else, switch 循环结构:语句在满足条件下循环执行多次 while, do-while, for 跳转语句 break, continue Date62 包 包解决类的同名问题 允许类组成较小的单元 (类似文件夹),易于 找到和使用相应的文件 防止命名冲突 更好的保护类、数 据和方法 A.java 包 Date63 如何创建包 package s1java.sg.chap7 ; public class AccpSchool public String toString() 包名 使用package声明包, 以分号结尾 如果有包的声明,一定 作为Java源代码的第一条 语句 Date64 包命名规范 包名由小写字母组成,不能以圆点开头或结 尾 自己设定的包名之前最好加上唯一的前缀, 通常使用组织倒置的网络域名。如:域名 自己设定的包名部分依不同机构各自内部的 规范不同而不同 package mypackage; package net.javagroup.mypackage; package net.javagroup.research.powerproject; 部门名 项目名 package .mypackage;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论