![第2章运算和语句_第1页](http://file4.renrendoc.com/view/5307d50882297cc927fc369836aed90a/5307d50882297cc927fc369836aed90a1.gif)
![第2章运算和语句_第2页](http://file4.renrendoc.com/view/5307d50882297cc927fc369836aed90a/5307d50882297cc927fc369836aed90a2.gif)
![第2章运算和语句_第3页](http://file4.renrendoc.com/view/5307d50882297cc927fc369836aed90a/5307d50882297cc927fc369836aed90a3.gif)
![第2章运算和语句_第4页](http://file4.renrendoc.com/view/5307d50882297cc927fc369836aed90a/5307d50882297cc927fc369836aed90a4.gif)
![第2章运算和语句_第5页](http://file4.renrendoc.com/view/5307d50882297cc927fc369836aed90a/5307d50882297cc927fc369836aed90a5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章运算符和语句Java语言程序设计本章学习要点:数据运算语句Java程序实例运算符:表示各种不同运算的符号就是运算符。(有运算对象(操作数)个数及类型、运算优先级、结合性等特性。)操作数:由运算符连接的参与运算操作的数据称为操作数。表达式:由运算符把操作数(可以是变量、常量等)连接成的一个有意义的式子就是一个表达式。2.1数据运算
赋值运算符都是二元运算符,具有右结合性。赋值运算符“=”左边的操作数必须是变量,不能是常量或表达式;右边的操作数可以是变量、常量或表达式。赋值时,右边的操作数与左边的变量类型要匹配。 基本赋值运算符的使用形式是: 变量名=表达式; 扩展赋值运算符的使用形式是: 变量名运算符=表达式;p13-14注意事项2.1.1赋值运算算术运算符按操作数的多少可分为一元(或称单目)和二元(或称双目)两类,一元运算符一次对一个操作数进行操作,二元运算符一次对两个操作数进行操作。算术运算符的操作数类型是数值类型。一元运算符有+、-。一元运算符的结合性是右结合性。二元运算符有+、-、*、/和%,这些运算符并不改变操作数的值,而是返回一个必须赋给变量的值,二元算术运算符具有左结合性。
p14注意事项2.1.2算术运算自增++、自减--是单目运算符,要求运算分量是数值类型的变量。其作用是使变量的值增1或减1。注意前缀和后缀的区别。例:i=4;j=++i;i=4;j=i++;i=4;j=--i;i=4;j=i--;p15注意事项2.1.3自增和自减运算完成操作数的比较运算,结果为true、false(布尔类型值)。包括:==,!=,<,<=,>,>=都是双目运算符。运算符“==”和“!=”的运算优先级低于另外四个关系运算符。
2.1.4关系运算包括:&&,||,!注意:逻辑运算的操作数必须是布尔型的,结果也是布尔型的!优先级关系见p213附录B【例】inta=2,b=3,c=4,d=5;booleanx=a++>b++&&c++>d++;【例】要表示y/x>2并且x!=0,则表达式应为:&&,如果其前面的表达式为假,则不再计算其后面的表达式(a=3,b=4,c=4,d=5,x=false)2.1.5(布尔)逻辑运算x!=0&&y/x>2条件运算符是一种三元运算符,右结合型,它的格式如下:逻辑表达式?表达式1:表达式2【例】c=a>b?a:bx>y?x:u>v?u:v注意条件表达式的返回值类型由表达式1和表达式2的类型所占字节数高的决定。2.1.6条件运算1、位运算及移位运算位运算的运算分量只能是整型数据,位运算把运算对象看作是由二进制位组成的位串,逐位完成指定的运算,得到一个新的位串。位运算符有4个,按优先级从高到低顺序,依次为:
~(位反)、&(位与)、^(位异或)、|(位或)。移位运算:将整数作为二进制位的位串向左或向右移动。移位运算符有三个:
左移运算符(<<)、算术右移运算符(>>)、逻辑右移运算符(>>>)2.1.7其他运算符左移一位相当于乘2,如4<<2,结果为16右移一位相当于除以2,如12>>2,结果为3注意:对于负数,逻辑右移左端补0,算术右移左端补符号位,即1。2、字符串运算符运算符“+”可以实现两个或多个字符串的连接,也可实现字符串与其他类对象的连接,在连接时,其他类对象会被转换成字符串。另外,运算符“+=”把两个字符串连接的结果放进第一个字符串里。例如,当想把几项输出内容输出在同一行里时使用的就是“+”运算符。2.1.7其他运算符补充:
①对象运算符(instanceof)对象运算符instanceof用来判断一个对象是否是某一个类或者其子类的实例。如果对象是该类或者其子类的实例,返回ture;否则返回flase。
②.运算符
.运算符用于访问对象实例或者类的类成员函数(即静态的)。③new运算符new运算符用于创建一个新的对象或者新的数组。2.1.7其他运算符表达式是由操作数和运算符按一定的语法形式组成的符号序列.类型转换优先级结合性总结:运算符的优先级和表达式(一)类型转换1.自动类型转换整型、实型和字符型数据可以进行混合运算。在运算中,不同类型的数据先转换成相同类型,然后再进行运算。转换从低级到高级。可混合运算数据类型从低到高排列如下:低->byte,short,char,int,long,float,double->高总结:运算符的优先级和表达式(一)类型转换2.强制类型转换(p19)
高级数据要转换为低级数据时,需进行强制类型转换,Java不象C/C++那样在赋值时允许自动类型转换。从一种类型转换到另一种类型可以使用下面的语句:
inta=5;charb;b=(char)a;加括号的char告诉编译器想把整型变成字符并把它放在b里。总结:运算符的优先级和表达式(一)类型转换3.表达式求值中的自动类型提升在表达式的求值过程中,运算中间值的精度有时会超出操作数的取值范围。例如:bytex=30,y=50,z=100;inta=x*y/z;Java语言在对表达式求值时,自动提升byte或short类型的数据为int类型的。自动类型提升对数据的运算带来了方便,但也容易引起编译错误。例如:bytex=30;x=-x;//可测试,会出现编译错误!不能向byte变量赋int值总结:运算符的优先级和表达式正负号,++,--,!(二)优先级(参见附录B)一个表达式中可能有多个运算符,它们按照优先级从高到低的顺序进行计算。单目算术位移关系==!=逻辑条件(三目)赋值(三)结合性结合性确定了同级运算符的运算顺序。(单目、三目及赋值是右结合,其余均是左结合)总结:运算符的优先级和表达式Java用类搭起程序的框架,以方法实现类的功能,在方法中用各种语句结构来控制程序的流程.2.2语句
基本语句主要有表达式语句、空语句、break语句、continue语句、return语句等。基本语句都以分号为结束符。2.2.1基本语句用一对花括号“{}”将零个或多个语句括起来,就构成一个块(也称复合语句)。在块中允许包含另一个块(块嵌套)。在Java语言中,允许一个块出现在任何单一语句可以出现的地方。
2.2.2复合语句(块作用域)class块{publicstaticvoidmain(Stringargs[]){inta=5;a+=8;{intb=6;b=b+a;System.out.println(a+""+b);}}}注意:此句移到括号外则出错!块体现了Java面向对象程序设计的封装概念,在一个块中声明的局部变量的作用域是该变量的声明开始点到最小的包含其声明的块结束。块嵌套时,外层声明的变量在内层仍然有效,但内层不能再声明与外层变量同名的变量.2.2.2复合语句(块作用域)分支语句在程序中的作用是使程序更灵活,它允许程序根据不同的情况、不同的条件等采取不同的动作、进行不同的操作,实现选择结构。在Java语言中使用的分支语句有if-else语句和switch语句。2.2.3-2.2.4分支(选择)结构1.if-else语句【例】检查用random()方法产生的一个字符,判断是否为英文大写字母、小写字母、数字、空格或是其他符号,并输出相应信息。random()方法产生的随机数在0.0和1.0之间程序要根据5种不同的字符情况输出不同的信息。这属于多分支的程序设计,采用if嵌套的方法。2.2.3-2.2.4分支(选择)结构classLetter{publicstaticvoidmain(Stringargs[]){charch;ch=(char)(Math.random()*128);if(ch=='')System.out.println(ch+"是空格!");elseif(ch>='a'&&ch<='z')System.out.println(ch+"是小写字母!");elseif(ch>='A'&&ch<='Z')System.out.println(ch+"是大写字母!");elseif(ch>='0'&&ch<='9')System.out.println(ch+"是数字!");elseSystem.out.println(ch+"是其他符号!");}}注意:Java编译器总是将else与其最近未配对的if配对2.switch语句switch多分支语句结构实际上也是一种if-else结构,不过它使得在编码时很容易写出判断条件,特别是有很多选项而且条件比较简单的时候。switch的语法结构如下:switch(表达式){case值1:语句1;break;case值2:语句2;break;......case值N:语句N;break;default:语句N+1;}表达式必须为byte,short,int,或char类型常量值必须是与表达式类型兼容,且不能重复,break跳出case语句段若所有的case都不匹配,则可去执行default语句2.2.3-2.2.4分支(选择)结构2.2.3-2.2.4分支(选择)结构publicclassA{publicstaticvoidmain(Stringargs[]){ints=1;switch(s){case1:System.out.println("上街购物去!\n");break;case2:System.out.println("去游泳!\n");break;case3:System.out.println("在家看电视!\n");break;default:System.out.println("错误选择!\n");break;}}}循环语句的作用是使某一段程序根据需要重复执行多次。循环语句由循环体和循环条件两部分构成,循环体是要重复执行的语句,循环条件决定循环的开始、重复执行以及结束循环。2.3.6-2.2.10循环结构while语句的一般格式为:
while(布尔表达式)语句while语句循环体最少执行次数为0次。do_while循环语句的一般格式为:
do语句while(布尔表达式);do_while语句的循环体至少执行1次.死循环可以用ctrl+c键退出2.3.6-2.2.10循环结构
①while语句与do-while语句intcount=1;while(count<=n){if(count<n)System.out.print(count+",");elseSystem.out.println(count);count++;}c=0;do{n/=10;c++;}while(n!=0);System.out.println(c);for循环语句在几种循环语句中的格式与用法最灵活,它的一般格式为:for([表达式1];[表达式2];[表达式3])语句其中,表达式1指出for循环的循环初值;表达式2是一关系或逻辑表达式,值为false时循环结束;表达式3指出每次循环时所进行的计算和更新。3个表达式在使用中可根据需要,部分或全部不写均可。2.3.6-2.2.10循环结构
③for语句for(s=0,i=1;i<=100;i++)s+=i;一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,称多重循环。设计循环嵌套结构时,要注意内存循环语句必须完整地包含在外层循环的循环体中,不得出现内外层循环体交叉的情况。Java语言中的三种循环语句都可以组成多重循环。2.3.6-2.2.10循环结构
④循环嵌套【例】输出星号符号组成的菱形图案classPrintStar{publicstaticvoidmain(Stringargs[]){for(inti=-2;i<=2;i++){for(intj=1;j<=Math.abs(i);j++)System.out.print("");for(intj=1;j<=(3-Math.abs(i))*2-1;j++)System.out.print("*");System.out.println();}}}*************【例2.10】已知直角三角形每边长为25以内的整数,求出所有这样的直角三角形三边长。publicclassExample2_10{publicstaticvoidmain(Stringargs[]){inta,b,c;for(c=3;c<=25;c++)for(b=1;b<c;b++)for(a=1;a<=b;a++)if(a*a+b*b==c*c)System.out.println("A="+a+"\tb="+b+"\tC="+c);}}2.3.6-2.2.10循环结构
⑥breakclassPrimeNbelow{
publicstaticvoidmain(Stringargs[]){inti,j;for(j=2;j<=50;j++){for(i=2;i<=j/2;i++)if(j%i==0)break;if(i>j/2)System.out.print("\n"+j+"是质数");}}}【例2.12】求50以内的所有质数2.3.6-2.2.10循环结构
⑤continueclassPrimeNbelow{publicstaticvoidmain(Stringargs[]){inti;for(i=1;i<=5;i++){if(i%2!=0)System.out.print("*");elsecontinue;
System.out.print("#");}System.out.println("$\n");}}运行结果:
*#
*#
*#$
2.2.5try…catch语句
Java异常处理Java是一个讲究安全性的语言。任何可能在程序运行过程中产生打断程序正常执行的事件都有用来保护的陷阱。Java异常处理机制提供了去检查及处理产生各种错误、异常事件的方法。1.异常的概念在程序运行过程中发生的、会打断程序正常执行的事件称为异常(Exception),也称为例外。程序运行过程中可能会有许多意料之外的事情发生,
例如:零用作了除数(产生算术异常ArithmeticException)在指定的磁盘上没有要打开的文件(FileNotFoundException)对于一个实用的程序来说,处理异常的能力是一个不可缺少的部分,它的目的是保证程序在出现任何异常的情况下仍能按照计划执行。2.2.5try…catch语句
Java异常处理2.异常处理在Java语言中,异常有几种处理方式:(1)可以不处理运行时异常,由Java虚拟机自动进行处理。(2)使用try-catch-finally语句捕获异常。(3)通过throws子句声明抛弃异常,还可以自定义异常,用throw语句来抛出它。2.2.5try…catch语句
Java异常处理try{语句//可能产生异常的语句}//不能有其它语句分隔catch(异常类e)//异常参数{语句}//异常处理程序catch(异常类e)//异常参数{语句}//异常处理程序…finally{语句}//最终处理(缺省处理);…//OtherStatements2.2.5try…catch语句
Java异常处理捕获除数为零的异常,并显示相应信息。classExceptionDemo1{
publicstaticvoidmain(Stringargs[])
{
intd,a;try//监控可能产生异常的代码块{d=0;a=68/d;System.out.println("本字符串将不显示。");}catch(ArithmeticExceptione)//捕获divide-by-zero错误{System.out.println("产生用零除错误。");}finally{System.out.println("finally语句被执行");}
System.out.println("在捕获语句后。");
}}2.2.5try…catch语句
Java异常处理 Java中的包(package)是用来把一组相关的类、接口放在一起的组织结构(集合),它是一个相对独立的软件单元,可以简单地理解为放置这些类和接口的文件夹。包体现了Java语言面向对象特性中的封装机制。Java包就是具有一定相关性在文件系统中可准确定位的Java文件的集合。2.2.11-12Java中包的概念与使用Java提供的用于语言开发的类库及接口,称为应用程序编程接口API(ApplicationProgrammingInterface),分别放在不同的包中。2.2.11-12Java中包的概念与使用java.lang 语言包java.applet Applet应用程序java.awt 抽象窗口工具包java.io 输入输出流的文件包 网络功能java.util 实用包一.Java的常用包2.2.11-12Java中包的概念与使用二.包的引用在Java程序的开头添加import语句,可指明源程序要使用含有该类的包.如:importjava.awt.Graphics;importjava.applet.*;注意:java.lang包是系统自动隐含导入的,所以可以不使用import语句.其他类引用时一定要使用import语句导入该类的包.2.2.11-12Java中包的概念与使用2.2.11-12
Java中包的概念与使用
---(1)包声明一、包由包语句package创建:
package[自定义包名1[.包名2[.[...]]]]
在Java程序中,package语句必须是程序的第一条非空格、非注释语句。通过package语句,可将Java程序分层次地存放在不同的目录下,目录名称与包的名称相同。关键字package后是不同层次的包名,各级包名之间用“.”号分隔。通常情况下,包名称的元素被整个地小写。[package包名;]import包名.类名;…//更多的import语句,引入更多的类[public]class类名{intval=…//变量定义语句publicstaticvoidmain(Stringargs[])//方法定义{ …//变量定义和控制语句构成的方法体}}2.2.13Java应用程序的基本结构Java程序由类和对象构成,而类又由方法和变量构成。J
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《车辆分离光栅》课件
- 微机原理扩展实验:单片机制作模拟电梯
- 银行业务运营报告模板
- 2025年汽车车身、挂车项目合作计划书
- 小学纪念澳门回归活动方案
- 学前教育创新方法以及误区研究论文
- 离校培训申请书
- 滑坡房申请书
- 音乐与小学教育
- 成语的世界模板
- 2023年初中道法九年级上册知识点汇总(思维导图)
- 观赏树木的园林特性课件
- 《篮球主修》考核方式
- Unit 3 Times change单元教学设计
- 科室医院感染风险评估表
- 山东省食用油(植物油)生产企业名录496家
- 《智慧农业》的ppt完整版
- GB∕T 33047.1-2016 塑料 聚合物热重法(TG) 第1部分:通则
- 经济学市场失灵与政府失灵课件
- 电力业务许可证豁免证明
- 建筑工程资料归档立卷分类表(全)
评论
0/150
提交评论