第四章-运算符、表达式与语句课件_第1页
第四章-运算符、表达式与语句课件_第2页
第四章-运算符、表达式与语句课件_第3页
第四章-运算符、表达式与语句课件_第4页
第四章-运算符、表达式与语句课件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

第四章 运算符、表达式和语句1、运算符与表达式2、语句概述3、控制语句4、循环语句5、break和continue语句6、数组与for语句第四章 运算符、表达式和语句1、运算符与表达式4.1 运算符与表达式1.算术运算符与算术表达式(1)加减运算符:+,-。例如:2+39,908.98-23等。(2)乘、除和求余运算符:*,/,%。例如:2*39,908.98/23等。2.自增,自减运算符:++,--。4.1 运算符与表达式1.算术运算符与算术表达式3.关系运算符与关系表达式运算符优先级用法含义结合方向><>=<===!=666677op1>op2op1<op2op1>=op2op1<=op2op1==op2op1!=op2大于

小于大于等于

小于等于

等于不等于左到右

左到右

左到右

左到右

左到右

左到右3.关系运算符与关系表达式运算符优先级用法含义结合方向>6o4.逻辑运算符与逻辑表达式运算符优先级用法含义结合方向&&||!11122op1&&op2op1||op2!op逻辑与

逻辑或

逻辑非左到右

左到右

右到左4.逻辑运算符与逻辑表达式运算符优先级用法含义结合方向&&15.赋值运算符与赋值表达式6. 位运算符(1)”按位与”运算符例如:a 00000000000000000000000000000111b 10000001101001011111001110101011&_____________________________________c 00000000000000000000000000000011(2)”按位或”运算符(3)”按位非”运算符(4)“按位异或”运算符5.赋值运算符与赋值表达式例子1: classExample3_1{publicstaticvoidmain(Stringargs[]){chara1='十',a2='点',a3='进',a4='攻';charsecret='8';a1=(char)(a1^secret); a2=(char)(a2^secret);a3=(char)(a3^secret); a4=(char)(a4^secret);System.out.println("密文:"+a1+a2+a3+a4);a1=(char)(a1^secret); a2=(char)(a2^secret);a3=(char)(a3^secret);a4=(char)(a4^secret);System.out.println("原文:"+a1+a2+a3+a4);}}例子1: 7.instanceof运算符8.运算符综述优先级描述运算符结合性1234567891011121314分隔符对象归类,自增自减运算,逻辑非算术乘除运算算术加减运算移位运算大小关系运算相等关系运算按位与运算按位异或运算按位或逻辑与运算逻辑或运算三目条件运算赋值运算[]().,;instanceof++--!~*/%+->><<>>><<=>>=== !=&^|&&||?:=右到左左到右

左到右

左到右左到右左到右左到右左到右左到右左到右左到右左到右右到左7.instanceof运算符优先级描述运算符结合性1分隔4.2语句概述方法调用语句,如:System.out.println("Hello");表达式语句,如: x=23;复合语句 {z=23+x;System.out.println("hello");}控制语句package语句和import语句。4.2语句概述4.3if条件分支语句1、条件语句a.if语句if语句的一般形式:if(表达式){若干语句}4.3if条件分支语句例子2:publicclassExample3_2{publicstaticvoidmain(Stringargs[]){inta=9,b=5,c=7,t;if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}System.out.println("a="+a+",b="+b+",c="+c);}}例子2:b.if-else语句if-else语句的一般格式:if(表达式){若干语句}else{若干语句}注:if和else后面的复合句里如果只有一个语句,{}可以省略不写,但为了增强程序的可读性最好不要省略.有时为了编程的需要,else或if后面的大括号里可以没有语句。b.if-else语句例子3:publicclassExample3_3{publicstaticvoidmain(Stringargs[]){intmath=65,english=85;if(math>60){System.out.println("数学及格了");}else{System.out.println("数学不及格");}if(english>90){System.out.println("英语是优");}else{System.out.println("英语不是优");}if(math>60&&english>90){System.out.println("英语是优,数学也及格了");}System.out.println("我在学习控制语句");}}例子3:c.if语句的扩充形式if(表达式1)语句1elseif(表达式2)语句2……elseif(表达式n)语句nc.if语句的扩充形式4.4switch开关语句switch语句是多分支的开关语句,它的一般格式定义如下:switch(表达式){case常量值1:若干个语句break;case常量值2:若干个语句break;…case常量值n:若干个语句break;default:若干语句}4.4switch开关语句例子4:publicclassExample3_4{publicstaticvoidmain(Stringargs[]){intx=96,y=1;switch(x+y){case1:system.out.println(x+y);break;case‘a’:system.out.println(x+y);case10:system.out.println(x+y);break;default:system.out.println("没有般配的“+(x+y));}}}例子4:4.5循环语句1、for循环for(表达式1;表达式2;表达式3){若干语句}4.5循环语句例子5:publicclassExample3_5{publicstaticvoidmain(Stringargs[]){longsum=0,a=8,item=a,n=12,i=1;for(inti=1;i<=n;i++){sum=sum+item;item=item*10+a;}System.out.println(sum);}}例子5:2、while循环一般格式:while(表达式){若干语句}3、do-while循环一般格式:do{若干语句}while(表达式);2、while循环用while语句求1到100的和publicclassWhileLoop{ publicstaticvoidmain(Stringargs[]){ intresult=0; inti=1; while(i<=100){ result+=i; i++; } System.out.println("result="+result); }}用while语句求1到100的和用do-while语句求1到100的和publicclassDoWhileLoop{ publicstaticvoidmain(Stringargs[]){ intresult=0; inti=1; do{ result+=i; i++; }while(i<=100); System.out.println("result="+result); }}用do-while语句求1到100的和例子6:classExample3_6{ publicstaticvoidmain(Stringargs[]){doublesum=0,a=1;inti=1;while(i<=20){sum=sum+a;i=i+1;a=a*(1.0/i);}System.out.println("sum="+sum);}}例子6:第五节break和语句continue例子7:classExample3_7{publicstaticvoidmain(Stringargs[]){intsum=0,i,j;for(i=1;i<=10;i++) {if(i%2==0)continue;sum=sum+i;}System.out.println("sum="+sum);for(j=2;j<=50;j++) {for(i=2;i<=j/2;i++){if(j%i==0)break;}if(i>j/2){System.out.println(""+j+"是素数");}}}}第五节break和语句continuebreak与continue练习:classExample1{publicstaticvoidmain(Stringargs[]){intsum=0;for(inti=0;i<10;i++){sum+=i;if(i==5){break;}System.out.println(“sum=”+sum);}}}break与continue练习:classExample2{publicstaticvoidmain(Stringargs[]){for(inti=0;i<10;i++){if(i==3)break;System.out.println("i="+i);}

System.out.println("GameOver");}}classExample2classExample3{publicstaticvoidmain(Stringargs[]){for(inti=0;i<3;i++)for(intj=10;j<30;j+=10){System.out.println(i+j);if(i>0)break;}}}classExample3流程控制综合示例示例1:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?流程控制综合示例示例1:流程控制综合示例示例2:求m和n的最大公约数。流程控制综合示例示例2:流程控制综合示例示例3:百元百鸡问题每只母鸡3元,每只公鸡4元,每只小鸡0.5元,如果花100元钱买100只鸡,请问有哪些可能?说明:每种鸡的数量都可以为零。流程控制综合示例示例3:百元百鸡问题流程控制综合示例示例4:喝汽水问题共有1000瓶汽水,每喝完1瓶后得到1个空瓶子,每3个空瓶子又能换1瓶汽水,喝掉以后又得到1个空瓶子,问总共能喝多少瓶汽水,最后还剩余多少个空瓶子。流程控制综合示例示例4:喝汽水问题4.7数组1.声明数组声明一维数组有下列两种格式:数组元素类型 数组名字[];数组元素类型[]数组名字;声明二维数组有下列两种格式数组元素类型 数组名字[][];数组元素类型[][]数组名字;例如:floatboy[];double[]girl;charcat[];floata[][];double[][]b;chard[][];4.7数组1.声明数组2.为数组分配内存为数组分配内存空间的格式如下:数组名字=new数组元素的类型[数组元素的个数];例如:boy=newfloat[4];声明数组和创建数组可以一起完成,例如:floatboy[]=newfloat[4];说明:数组boy获得4个用来存放float类型数据的内存空间。数组变量boy中存放着这些内存单元的首地址,该地址称作数组的引用。0x85BAboy[0]boy[1]boy[2]boy[3]boy2.为数组分配内存0x85BAboy[0]boy[1]boy二维数组和一维数组一样,在定义之后必须用new运算符分配内存空间,例如:intmytwo[][];mytwo=newint[3][5];或intmytwo[][]=newint[3][4];说明:一个二维数组可以看成是由若干个一维数组组成。构成二维数组的一维数组不必有相同的长度例如:inta[][]=newint[3][];a[0]=newint[6];a[1]=newint[12];a[2]=newint[8];和C语言不同的是,Java允许使用int型变量指定数组的大小。二维数组和一维数组一样,在定义之后必须用new3.数组元素的使用一维数组通过下标符访问自己的元素,如:boy[0],boy[1]等.二维数组也通过下标符访问自己的元素,如:a[0][1],a[1][2]等。注:需要注意的是下标从0开始。4.length的使用表示数组长度的格式:数组名.length说明:一维数组:数组中元素的个数二维数组:一维数组的个数例如:floata=newfloat[12];Intb[][]=newint[3][6];3.数组元素的使用例如:5.数组的初始化

创建数组后,系统会给每个数组元素一个默认的值,如:float型是0.0。我们在声明数组时同时也还可以给数组的元素一个初始值,如:floatboy[]={12.3f,23.89f,2.0f,23f,578.98f}上述语句相当于:floatboy[]=newfloat[5];boy[0]=12.3f;boy[1]=23.89f;boy[2]=2.0f;boy[3]=23f;boy[4]=578.98f;例如:Strings[]={“we”,“are”,“hello”,“123”,“who?”};5.数组的初始化6.数组的引用两个相同类型的数组如果具有相同的引用,那么它们就有完全相同的元素。例如:inta[]={1,2,3},b[]={4,5};0x35ce36aa[0]a[1]a[2]0x757aefbb[0]b[1]0x757aefbb[0]b[1]0x757aefa[0]a[1]a6.数组的引用0x35ce36aa[0]a[1]a[2]0x例4:publicclassExample2_4{publicstaticvoidmain(Stringargs[]){inta[]={1,2,3,4};intb[]={100,200,300};System.out.println("数组a的引用="+a);System.out.println("数组b的引用="+b);a=b;System.out.println("数组a的元素个数="+a.length);System.out.println("数组b的元素个数="+b.length);System.ou

温馨提示

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

评论

0/150

提交评论