《java程序设计》第2讲课件

PPT
  • 阅读 62 次
  • 下载 0 次
  • 页数 72 页
  • 大小 1.257 MB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
《java程序设计》第2讲课件
可在后台配置第一页与第二页中间广告代码
《java程序设计》第2讲课件
可在后台配置第二页与第三页中间广告代码
《java程序设计》第2讲课件
可在后台配置第三页与第四页中间广告代码
《java程序设计》第2讲课件
《java程序设计》第2讲课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 72
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】《java程序设计》第2讲课件.ppt,共(72)页,1.257 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-45109.html

以下为本文档部分文字说明:

2022/11/241Java语言程序设计河南科技专修学院辛凤凡xff130@qq.com2022/11/242第2章运算和语句2022/11/243本章总体纲要•数据运算•语句•Java程序实例2022/11/244数据运算•赋值运算(简单复合)•算

术运算•自增自减运算(单目)•关系运算•逻辑运算•条件运算(三目)•其他运算2022/11/245Java运算符1.赋值类运算符2.算术运算符3.自增自减运算符4.关系运算符5.布尔逻辑运算符6.条件运算符7.其他运算符(位运算符、移位)

2022/11/2461.赋值类运算符•简单赋值运算符•=•不是相等(==)•intj=3;doubley=2.0;y=j;(类型自动转换)从简单到复杂的转换•赋值运算也有值y=j=3;•结合性:自右至左2022/11/2471.赋值类运算符•

复合赋值类运算符•包括:+=、-=、*=、/=、&=、|=、%=、<<=、>>=和>>>=op1=op1二元运算符op2等价于op1二元运算符=op2;例如:a=a+b;等价于a+=b;2022/11/2482.算术运算符•算术运算符包括:+(取

正),-(取负)(单目运算)+,-,*,/,%(双目运算)•注意事项:①当操作数是定点类型数据时,应当注意运算是否会溢出inti=123456;i=i*i;//溢出②整数除法:截去余数7/5结果为1③考虑除数是否可能为0

或很小的数2022/11/249④取模:返回余数,可以对定点或浮点数进行取模运算7%5结果为2;15.25%(-0.5)结果为0.252022/11/2410练习1)-7/5=2)-7%5=3)7%-5=4)5.5%1.0=-1-220.52022/11/24113

.自增自减运算(单目)自增(++)和自减(--):操作数必须是变量;有前置和后置两种运算intn=3;inti=n++,j=n--;//i=3,j=4,n=3intk=++n,m=--n;//k=4,

m=3,n=32022/11/24123.自增自减运算•前缀和后缀,对变量本身,效果相同;但表达式的值不相同。•i=5;++i;i--;•运算对象只能是变量,不能是常量或表达式,如:7++;(i+j)–都是非法的。2022/11/24134.关系运算符•关系运算符包括:<、>、

<=、>=、==和!=,关系运算生成一个布尔结果。•例如:1>2;//false3.5!=1;//true51.5>=23.0;//true540<=654;//true24==3*8;//truebooleantest1=(10<10);//test1=fa

lse;2022/11/2414•注意事项:–计算机在表示浮点数以及浮点数运算时存在误差,建议不要直接比较两个浮点数是否相等,而通常改为判断这两个浮点数是否在一定的误差允许范围之内。例如:(15.2%0.5)==0.2//结果为false(0.2-1.0e-5<15.2%0.5)&&(15

.2%0.5<0.2+1.0e-5)2022/11/24155.逻辑运算符•逻辑运算的操作数必须是布尔型,结果也是布尔型。可以有3种基本操作:与(&&)、或(||)、非(!)。•与C或C++不同的是,不可将一个非布

尔值当作布尔值在逻辑表达式中使用。2022/11/2416短路规则(&&和||)•短路规则:一旦能够明确无误的确定整个表达式的值,就不再计算表达式余下的部分了。因此,整个逻辑表达式靠后的部分可能不会计算。•比较:(birthda

y==true)&&(++age>=65)(birthday==true)||(++age>=65)2022/11/2417短路规则(&&和||)•inta,b,c;•a=b=c=1;•booleanw;•w=++a>1||++b<

++c;•a?b?c?w?•答案:a=2,b=1,c=1,w=true;2022/11/24186.条件运算符•条件运算符是一个三目运算符,一般形式为:逻辑表达式?表达式1:表达式2•例如:inti=5;intk=(i>=0)?1:-1;•条件运算符的结合性为“自右至左”。例如:x>y

?x:u>v?u:v等价于x>y?x:(u>v?u:v)2022/11/24197.其他运算符•位运算•移位运算•运算的优先级()•类型强制转换运算2022/11/2420位运算符和移位•位运算符包括

:&、|、~、^、•移位运算符有:>>、>>>和<<–&、|、~、^按位求与、或、非、异或–>>带符号右移:左端空出的位填原符号位–<<左移:右端空出的位补0–>>>不带符号右移(逻辑右移):左端空出的位填0(C或C++中无此运算符)•位运算操作是:先将整数写成二进制形式(

补码),然后按位操作,最后产生一个新的数•注意:只用于定点类型数据(整型)2022/11/2421注意事项:–Java将布尔类型作为一种单比特值(bit位)对待,可以对它执行按位“与”(&)、按位“或”(|)和按位“异或”(^)运算。–对于布尔值,按位操作具有与逻辑操作相同的

效果,只是&&和||采用“短路规则”而&和|则不采用。2022/11/2422intbefore=20;//apple笔记本市场份额doublerise=9.8;//增长的份额intnow=before+rise;//现在的份额intnow=befo

re+(int)rise;去年Apple笔记本所占的市场份额是20,今年增长的市场份额是9.8,求今年所占的份额?编译出错:不能完成自动类型转换(类型名)表达式强制类型转换intb=(int)10.2;doublea=10;intc=(int)a;其它运算符包括:(类型)、

()、.、[]、…..更改为强制类型转换2022/11/2423算符优先•当一个表达式中存在多个运算符时,运算符的优先级决定了个部分的计算顺序。Java对运算符的优先级做了特别规定。•程序员经常会忘记运算符的优先规则,所以应该用()来明确规定计算顺序使表达式更容易理解。•例如:–a+b+c/

3–(a+b+c)/32022/11/2425本章总体纲要•数据运算•语句•Java程序实例2022/11/2426语句•基本语句•复合语句•控制结构语句(顺序、选择、循环)2022/11/2427基本

语句•表达式语句k=k+2;•空语句;•break语句break;用于循环或选择•continue语句continue;同上•return语句return;return表达式;该语句的执行将结束方法的执行,只能出现在方法体中2022/11/2428复合语句•用花括号引起来的两条或两条以上语句

,顺序执行但作为一个整体。•在复合语句中可以定义自己专用的临时变量2022/11/2429控制结构1)if语句和if-else语句2)switch语句3)for语句4)while语句5)do-while语句6)break语句7)continue语句8)return语句

2022/11/2430true和false•选择或循环结构中,都根据布尔表达式的真或假来决定执行路径。•注意:Java不允许将一个数字作为布尔值使用,这与c或c++不同。例如:当要表达“如果a不等于0

”这个条件不能写作if(a)而要写作if(a!=0)2022/11/2431if语句•if语句的格式是:if(布尔表达式)语句–或if(布尔表达式){一条或多条语句}•例如:if(score>=60)System.out.prin

tln("Passed");//Herecouldbe{astatementblock}.表达式语句假真2022/11/2432if-else语句•if-else语句的格式是:if(布尔表达式)语句1或语句块1else语句2或语句块2•例如:if(score>=6

0)System.out.println("Passed!");elseSystem.out.println("Failed!");真表达式语句1假语句22022/11/2433if-else语句•标准嵌套if-else控制结构可实现多路选择,用在想从多个候选项中选择且只选出

一项时。例如:if(score>90)System.out.println(“A”);elseif(score>=80)System.out.println(“B”);elseif(score>=60)System.out.println

(“C”);elseSystem.out.println(“F”);假真真假表达式1语句1表达式2语句2语句32022/11/2434if-else语句•当使用if-else嵌套实现多分支选择结构时,注意if和else的匹配采用最近原则,即else子

句与最近的前一个未匹配的if子句配对。例如:if(condition1)if(condition2)system.out.println(“One”);elsesystem.out.println(“Two”);•缩进可以

提高程序的可读性,但不影响程序的逻辑。2022/11/2435switch(表达式){case常量1:语句组1;break;case常量2:语句组2;break;default:语句;}什么是switch结构计算表达式的值如果等于常量

1如果等于常量2如果没有找到匹配的值2022/11/2436switch语句•switch表达式的数据类型可以是基本类型char、byte、short、int;或是这四种基本类型相对应的包装类java.lang.Character、java.lang.Byte、java.lang.Short、j

ava.lang.Integer或enum枚举类型。•跟在case后的必须是常量表达式,其值的类型应当与switch表达式的数据类型相匹配。2022/11/2437常见错误intmingCi=1;switch(mingCi){case1:System.out.p

rintln("出任武林盟主");case2:System.out.println("出任武当掌门");case3:System.out.println("出任峨嵋掌门");default:System.out.println("被逐出师门");}输出结果是什么?如果需要每个case执

行完后跳出,在每个case后不要忘记写break;2022/11/2438常见错误intmingCi=1;switch(mingCi){case1:System.out.println("出任武林盟主

");break;case2:System.out.println("出任武当掌门");break;case2:System.out.println("出任峨嵋掌门");break;default:System.out.println("被逐出师门"

);}case后面的常量必须各不相同代码错误2022/11/2439常见错误Stringday="星期一";switch(day){case"星期一":System.out.println("星期一:青菜");break;case"星期二":System.out

.println("星期二:鱼");break;……default:}……switch后面小括号中表达式的值必须是整型或字符型代码错误2022/11/2440try…catch语句•Java提供了一种异常的机制协助程序报告

和处理错误•异常就是在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序•Try标识一个可能会发生异常的语句块•Catch标识一个处理异常的语句块•Finally标识一个无论try块中语句异常是否发生都会执行的语句块。异常!程序运行程

序中断运行2022/11/2441try…catch语句格式try{语句块//执行该语句块,可能会发生异常}catch(异常类型e){异常发生时要执行的语句块}finally{无论异常发生与否,都要执行的语句块}2022/11

/2442什么是循环:打印50份试卷10000米赛跑旋转的车轮循环结构的特点循环结构循环条件循环操作锲而不舍地学习生活中的循环2022/11/2443while语句•while语句的格式:while(布尔表达式)语句或语句块•当条件(布

尔表达式)为true,则不断地执行语句或语句块–“while”循环的中止条件是布尔表达式变为false–如果布尔表达式一开始就为false,则不执行循环体intcounter=1,sum=0;while(counter<=100){sum

+=counter;counter++;}2022/11/2444While语句特点:先判断,再执行步骤:使用while循环的步骤1、分析循环条件和循环操作2、套用while语法写出代码3、检查循环是否能够退出while(循环条件){循环操作}符合条件,循环

继续执行;否则,循环退出循环中被重复执行的操作inti=1;while(i<=30){System.out.println("我能行!");i++;}编码规范:缩进、换行循环操作循环条件真假2022/11/

2445while循环常见问题/*打印4次“欢迎新同学”*/publicstaticvoidmain(String[]args){inti=0;while(i<4){System.out.println(“欢迎新同学");i++;}}永远都不会退出的循环

称为死循环循环一直执行,不会退出,哪里出错了?2022/11/2446while循环常见问题/*打印4次“欢迎新同学”*/publicstaticvoidmain(String[]args){inti=1;while(i<4){System.out.printl

n(“欢迎新同学");i++;}}i<=4只打印了三次,哪里出错了?注意检查循环次数是否满足需求2022/11/2447while循环常见问题/*打印4次“欢迎新同学”*/publicstaticvoidmain(String[

]args){inti=0;while(i>5){System.out.println(“欢迎新同学");i++;}}注意:如果一开始条件就不满足,while循环一次都不执行i<5一次都没有打印,哪里出错了?2022/11/2448什么是do-while循

环do{循环操作}while(循环条件);先执行一遍循环操作符合条件,循环继续执行;否则,循环退出特点:先执行,再判断循环操作循环条件真假2022/11/2449while循环和do-while循环的区别语法不同初始情况不

满足循环条件时while循环一次都不会执行do-while循环不管任何情况都至少执行一次do{循环操作}while(循环条件);while(循环条件){循环操作}先判断,再执行先执行,再判断比较while和do-while202

2/11/2450for循环的语法和执行顺序什么是for循环for(;;){;}条件为true循环体被执行for(inti=0;i<100;i++){System.out.println("我最棒");}代码规范:格式对齐、代码的缩进表达式1表达式2表达

式3循环操作参数初始化条件判断更新循环变量12432022/11/2451for循环常见问题for(;i<10;i++){System.out.println("这是"+i);}inti=0;编译错误:变量i没有初始化for(<初始化循环变量>;<循环条件>;<修

改循环变量的值>){<循环体语句>;}不能省略可省略表达式1省略,循环变量的初始值在for语句之前由赋值语句取得2022/11/2452for循环常见问题for(inti=0;;i++){System.out.println("这是"+i

);}编译正确,但是缺少循环条件,造成死循环2022/11/2453for循环常见问题for(inti=0;i<10;){System.out.println("这是"+i);}i++;省略表达式3,在循环体

内应设法改变循环变量的值以结束循环编译通过,但是循环变量的值无变化,造成死循环2022/11/2454for循环常见问题for(;;){System.out.println("这是测试");}表达式全省略,无条件判断,循环变量无改变,应在循环体内设

法结束循环,否则会造成死循环死循环2022/11/2455为什么需要break语句inti=2;switch(i){case1:System.out.println("星期一");break;case2:System.out.println("星期二");break;}//其

他语句遇到break,立即跳出switch语句回顾break用于switch语句描述4000米长跑比赛for(inti=0;i<10;i++){跑400米;}if(不能坚持){break;//退出}第8圈,快累死了…我要退出…2022/11/2456什么是break语句break:改变程序控制

流用于do-while、while、for中时,可跳出循环而执行循环后面的语句while(…){………………break;………………}跳出整个循环break通常在循环中与条件语句一起使用2022/11/2457什么是continue语句contin

ue:只能用在循环里continue作用:跳过循环体中剩余的语句而执行下一次循环while(…){………………continue;…………}继续下一次循环通常与条件语句一起使用,加速循环for(inti=0;

i<10;i++){跑400米;if(!口渴){continue;//不喝水,继续跑}接过水壶,喝水;}示例2022/11/2458循环结构总结到目前为止所学的循环结构有哪些?需要多次重复执行一个或多个任务的问题考虑使用循环来解决2022/11/2459循环

总结inti=0;intsum=0;while(i<10){sum=sum+i;i++;}inti=0;intsum=0;do{sum=sum+i;i++;}while(i<10);intsum=0;for(inti=0;i<10;i++){sum=sum+i;}1

23412341234while和for相同,先进行判断,后执行循环体内容do-while是先执行,后判断,至少执行一次指出各种循环结构的执行顺序2022/11/2460嵌套的循环结构•for循环的嵌套•while循环

的嵌套•do..while循环的嵌套•以上三个任意之间的嵌套2022/11/2461return语句•return语句的格式是:return;或return表达式;•return关键词有两方面用途:–指定一个方法返回什么值–结束当前方法的执行,将控制返

回到方法调用处•返回值为void的方法可以不写return语句,但是,如果一个方法声明它将返回void之外的其他值,那么必须确保每一条代码路径都将返回一个指定类型的值。2022/11/2462控制流语句小结

顺序结构:语句顺序执行分支结构:语句在满足条件下执行if,if-else,if-elseif-else,switch循环结构:语句在满足条件下循环执行多次while,do-while,for跳转语句break,continue2022/11/2463包•包——解决类的同名问题允许类组成较小的单元

(类似文件夹),易于找到和使用相应的文件防止命名冲突更好的保护类、数据和方法A.java包2022/11/2464如何创建包packages1java.sg.chap7;publicclassAccpSchool{……publicStringtoString(){……}}包名使用

package声明包,以分号结尾如果有包的声明,一定作为Java源代码的第一条语句2022/11/2465包命名规范•包名由小写字母组成,不能以圆点开头或结尾•自己设定的包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名。如:域名javagroup.net•

自己设定的包名部分依不同机构各自内部的规范不同而不同packagemypackage;packagenet.javagroup.mypackage;packagenet.javagroup.research.powerproject;部门名项目名package.mypackage

;×2022/11/2466如何导入包•为了使用不在同一包中的类,需要在Java程序中使用import关键字导入这个类importjava.util.*;//导入java.util包中所有类importjava.lang.*;//导入jav

a.lang包中所有类关键字import并不陌生import包名.类名;1、系统包(eg:java.lang)2、自定义包:net.javagroup*:指包中的所有类HelloSchool:指包中的HelloSchool类2022/1

1/2467import语句•一个java源程序中可以有多个import语句,它们必须出现在package语句之后;类的定义之前。2022/11/2468Java程序的基本结构[package包名;]import包名.类名;…//更多的

import语句[public]class类名{intval=…//变量定义语句Publicstaticvoidmain(Stringargs[])//方法定义{…//变量定义和控制语句构成的方法体}}2022/11/2469本章总体纲要•数据运算•语句•Java程序实例2022/11/24

70结构化程序设计结构化程序设计=数据+操作+流程控制+结构化程序设计方法2022/11/2471流程控制•顺序结构–Java中的最基本结构•选择结构–if、if-else和switch-case•循环结构–while、do-while和for2022/11/2472程序实例(p

33-35)•上机练习•开始追求结果正确,领会要点以后,设法修改,力求精练。2022/11/2473引用声明•本课件参考了下面的书及其课件:–雍俊海.《Java程序设计教程》.北京:清华大学出版社,2007.

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?