CCUTSOFTJAVA程序设计第四章运算符、表达式和语句1、运算符与表达式2、语句概述3、控制语句4、循环语句5、break和continue语句6、数组与for语句JAVA程序设计CCUTSOFT4.1运算符与表达式1.算术运算符与算术表达式(1)加减运算符:+,-。例如:2+39,908.98-23等。(2)乘、除和求余运算符:*,/,%。例如:2*39,908.98/23等。2.自增,自减运算符:++,--。JAVA程序设计CCUTSOFT3.关系运算符与关系表达式运算符优先级用法含义结合方向====!=666677op1op2op1op2op1=op2op1=op2op1==op2op1!=op2大于小于大于等于小于等于等于不等于左到右左到右左到右左到右左到右左到右JAVA程序设计CCUTSOFT4.逻辑运算符与逻辑表达式运算符优先级用法含义结合方向&&||!11122op1&&op2op1||op2!op逻辑与逻辑或逻辑非左到右左到右右到左JAVA程序设计CCUTSOFT5.赋值运算符与赋值表达式6.位运算符(1)”按位与”运算符例如:a00000000000000000000000000000111b10000001101001011111001110101011&_____________________________________c00000000000000000000000000000011(2)”按位或”运算符(3)”按位非”运算符(4)“按位异或”运算符JAVA程序设计CCUTSOFT例子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);}}JAVA程序设计CCUTSOFT7.instanceof运算符8.运算符综述优先级描述运算符结合性1234567891011121314分隔符对象归类,自增自减运算,逻辑非算术乘除运算算术加减运算移位运算大小关系运算相等关系运算按位与运算按位异或运算按位或逻辑与运算逻辑或运算三目条件运算赋值运算[]().,;instanceof++--!~*/%+-====!=&^|&&||?:=右到左左到右左到右左到右左到右左到右左到右左到右左到右左到右左到右左到右右到左JAVA程序设计CCUTSOFT4.2语句概述方法调用语句,如:System.out.println(Hello);表达式语句,如:x=23;复合语句{z=23+x;System.out.println(hello);}控制语句package语句和import语句。JAVA程序设计CCUTSOFT4.3if条件分支语句1、条件语句a.if语句if语句的一般形式:if(表达式){若干语句}JAVA程序设计CCUTSOFT例子2:publicclassExample3_2{publicstaticvoidmain(Stringargs[]){inta=9,b=5,c=7,t;if(ab){t=a;a=b;b=t;}if(ac){t=a;a=c;c=t;}if(bc){t=b;b=c;c=t;}System.out.println(a=+a+,b=+b+,c=+c);}}JAVA程序设计CCUTSOFTb.if-else语句if-else语句的一般格式:if(表达式){若干语句}else{若干语句}注:if和else后面的复合句里如果只有一个语句,{}可以省略不写,但为了增强程序的可读性最好不要省略.有时为了编程的需要,else或if后面的大括号里可以没有语句。JAVA程序设计CCUTSOFT例子3:publicclassExample3_3{publicstaticvoidmain(Stringargs[]){intmath=65,english=85;if(math60){System.out.println(数学及格了);}else{System.out.println(数学不及格);}if(english90){System.out.println(英语是优);}else{System.out.println(英语不是优);}if(math60&&english90){System.out.println(英语是优,数学也及格了);}System.out.println(我在学习控制语句);}}JAVA程序设计CCUTSOFTc.if语句的扩充形式if(表达式1)语句1elseif(表达式2)语句2……elseif(表达式n)语句nJAVA程序设计CCUTSOFT4.4switch开关语句switch语句是多分支的开关语句,它的一般格式定义如下:switch(表达式){case常量值1:若干个语句break;case常量值2:若干个语句break;…case常量值n:若干个语句break;default:若干语句}JAVA程序设计CCUTSOFT例子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));}}}JAVA程序设计CCUTSOFT4.5循环语句1、for循环for(表达式1;表达式2;表达式3){若干语句}JAVA程序设计CCUTSOFT例子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);}}JAVA程序设计CCUTSOFT2、while循环一般格式:while(表达式){若干语句}3、do-while循环一般格式:do{若干语句}while(表达式);JAVA程序设计CCUTSOFT用while语句求1到100的和publicclassWhileLoop{publicstaticvoidmain(Stringargs[]){intresult=0;inti=1;while(i=100){result+=i;i++;}System.out.println(result=+result);}}JAVA程序设计CCUTSOFT用do-while语句求1到100的和publicclassDoWhileLoop{publicstaticvoidmain(Stringargs[]){intresult=0;inti=1;do{result+=i;i++;}while(i=100);System.out.println(result=+result);}}JAVA程序设计CCUTSOFT例子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);}}JAVA程序设计CCUTSOFT第五节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(ij/2){System.out.println(+j+是素数);}}}}JAVA程序设计CCUTSOFTbreak与continue练习:classExample1{publicstaticvoidmain(Stringargs[]){intsum=0;for(inti=0;i10;i++){sum+=i;if(i==5){break;}System.out.println(“sum=”+sum);}}}JAVA程序设计CCUTSOFTclassExample2{publicstaticvoidmain(Stringargs[]){for(inti=0;i10;i++){if(i==3)break;System.out.println(i=+i);}System.out.println(GameOver);}}JAVA程序设计CCUTSOFTclassExample3{publicstaticvoidmain(Stringargs[]){for(inti=0;i3;i++)for(intj=10;j30;j+=10){System.out.println(i+j);if(i0)break;}}}JAVA程序设计CCUTSOFT流程控制综合示例示例1:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?JAVA程序设计CCUTSOFT流程控制综合示例示例2:求m和n的最大公约数。JAVA程序设计CCUTSOFT流程控制综合示例示例3:百元百鸡问题每只母鸡3元,每只公鸡4元,每只小鸡0.5元,如果花100元钱买100只鸡,请问有哪些可能?说明:每种鸡的数量都可以为零。JAVA程序设计CCUTSOFT流程控制综合示例示例4:喝汽水问题共有1000瓶汽水,每喝完1瓶后得到1个空瓶子,每3个空瓶子又能换1瓶汽水,喝掉以后又得到1个空瓶子,问总共能喝多少瓶汽水,最后还剩余多少个空瓶子。JAVA程序设计CCUTSOFT4.7数组1.声明数组声明一维数组有下列两种格式:数组元素类型数组名字[];数组元素类型[]数组名字;声明二维数组有下列两种格式数组元素类型数组名字[][];数组元素类型[][]数组名字;例如:floatboy[];double[]girl;charcat[];floata[][];double[][]b;chard[][];JAVA程序设计CCUTSOFT2.为数组分配内存•为数组分配内存空间的格式如下:数组名字=new数组元素的类型[数组元素的个数];例如:boy=newfloat[4];•声明数组和创建数组可以一起完成,例如:floatboy[]=newfloat[4];说明:数组boy获得4个用来存放float类型数据的内存空间。数组变量boy中存放着这些内存单元的首地址,该地址称作数组的引用。0x85BAboy[0]boy[1]boy[2]boy[3]boyJAVA程序设计CCUTSOFT•二维数组和一维数组一样,在定义之后必须用new运算符分配内存空间,例如:intmytwo[][];mytwo=newint[3][5];或intmytwo[][]