第二节语言基础讲课文档.pptVIP

  • 0
  • 0
  • 约1.02万字
  • 约 64页
  • 2026-01-30 发布于山东
  • 举报

5.表达式(1)赋值运算符与强制类型转换 赋值运算使用赋值运算符: =右边的表达式可以是常量、另一个变量、方法的返回值。 如:i=0; k=i+5; myFirstString=myDouble.toString(); mySecondString=myFirstString; 变量或对象=表达式;第28页,共64页。5.表达式(1)赋值运算符与强制类型转换Java是强类型语言,在进行运算时,首先进行类型检查:如果类型不一致,则会按照某种规则自动进行转换,按照转换后的类型进行操作;如果类型不一致而且不能转换,则会报错。在赋值运算中,如果等号左边的数据类型和等号右边的数据类型不一致,需要把等号右边的数据类型转化成等号左边的数据类型。Java的类型转换有较严格的规定:凡是将变量从占用内存较少的短数据类型转化成占用内存较多的长数据类型时,自动类型转换声明;而将变量从较长的数据类型转换成较短的数据类型时,必须进行强制类型转换。 例: byteb=10; inti=-1; 把b的值赋给i:i=b; 而把i的值赋给b:b=(byte)i;b=i;Typemismatch:cannotconvertfrominttobyteatTemp.main(Temp.java:6)第29页,共64页。5.表达式(1)赋值运算符与强制类型转换强制类型转换:(数据类型)变量名或表达式; 例如:inti=99;byteb=(byte)i;charc=(char)i;floatf=(float)i强制类型转换可能会导致溢出或精度的下降。 byteb=99;可以,直接把值99转换为(byte)99赋给了byte,不溢出; byteb=9999;编译错,把int值9999转换为(byte)9999时溢出; byteb=i;编译错,不能把int型变量赋给byte型变量,要强制转换第30页,共64页。5.表达式(2)算术运算 算术运算针对数值类型操作数进行运算,根据操作数个数的不同,算术运算符分为双目运算符和单目运算符两种。 第31页,共64页。5.表达式(2)算术运算双目运算符:只有整数类型(byte,int,long,short)的数据才能够进行取余运算,float和double不能取余。两个整型数据做除法时,结果只截取商数的整数部分,而小数部分被截断,如1/2=0。如果希望保留小数部分,应对操作数做强制类型转换,如((float)1)/2=0.5。“整数值/0”时,执行时抛出异常;“浮点值/0”得到值“+-Infinity”运算符运算例功能+加a+b求和-减a-b求差*乘a*b求积/除a/b求商%取余a%b求余数第32页,共64页。5.表达式(2)算术运算单目运算符:操作数只有一个“++a”和“a++”的执行顺序不同: ++a:先a加1,再使用a; a++:先使用a,再a加1。 (“--a”与“a--”同理)。单目运算符的位置不同,虽然对操作数变量没有影响,但却会改变整个表达式的值。 例:intx=2;inty=(++x)*3; 结果:x=3,y=9 intx=2;inty=(x++)*3; 结果:x=3,y=6运算符运算例功能++自增a++或++aa=a+1--自减a--或--aa=a-1-求反-aa=-a第33页,共64页。5.表达式publicclassUseArithmeticextendsAppletimplementsActionListener{Labelprompt;TextFieldinput1,input2;Buttonbtn;inta=0,b=1;publicvoidinit(){prompt=newLabel(请输入两个整型数据:); input1=newTextField(5); input2=newTextField(5); btn=newButton(计算); add(prompt); add(input1); add(input2); add(btn); btn.addA

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档