Java语言编程基础-数据运算与表达式_第1页
Java语言编程基础-数据运算与表达式_第2页
Java语言编程基础-数据运算与表达式_第3页
Java语言编程基础-数据运算与表达式_第4页
Java语言编程基础-数据运算与表达式_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

Java程序设计基础导言本课程学习目标认识Java语言数据运算符了解Java语言位运算类型了解Java语言多元运算操作理解Java语言位运算实现原理掌握Java语言各类运算操作语法运算符本课学习目标了解运算类型的分类;了解位运算符;掌握各种运算类型的符号。基本概念计算机为我们工作的过程,实际上是对数据项进行操作的过程。对数据项的操作,用我们习惯的话说,就是运算,例如,加、减、乘、除等。在计算机语言中,就像在代数里一样,对数据项(变量、常量等)的运算用运算符表示。每一种运算都有一种运算符,如+、-分别表示加、减运算。参与运算的数据项,称为操作数。基本概念操作数和运算符的组合,称为表达式(expression)。例如:假定a,b为数值数据项,则a+ba-b为表达式。表达式中数据项运算的结果,称为表达式的值。类型的运算概括地说,类型的运算有:算术运算位运算关系运算逻辑运算赋值运算条件运算算术运算基本运算包括加(+)、减(-)、乘(*)、除(/)、取模(%)。增量运算:将操作数加1。运算符为++;减量运算:将操作数减1。运算符为--;将增量或减量运算符放在操作数前面和放在操作数后面,表达式的结果不一样。上述运算的操作数必须是数值类型(整型与浮点型都可以);算术运算应用 intx=8; inty=5; x+y; x-y; x*y; x/y; x%y; 1+(x++); (++x)+1; 1+(x--); (--x)+1;关系运算关系运算符用来比较两个值之间大小关系的运算,返回布尔类型值true或false;关系运算包括等于、大于、小于、大于等于、小于等于、不等于。运算符号为:==、>、<、>=、<=、!=。关系运算应用

intx=8; inty=5; intz=8; x>y; x<y; x<=z; x>=y; x==y; x==z; x!=y; x!=z;逻辑运算逻辑运算也叫布尔运算经常用来连接关系表达式,运算数必须是布尔值。逻辑运算包括与、或、非、异或、无条件与、无条件或。运算符分别为:&&、||、!、^、&、及|。逻辑运算&& 当两个操作数都为true时,结果值才为ture;|| 当两个操作数中有一个为true时,结果值就为ture;!逻辑非,放在true前面结果值变为false,放在false前面结果值变为false,^操作数一个为true,一个为false时,结果值为true;否则结果值为false;&当两个操作数都为true时,结果值才为ture;|当两个操作数中有一个为true时,结果值就为ture;逻辑运算&&与&区别(3>5)&&(8>6)(3>5)&(8>6)||与|区别(10>5)||(5==6)(10>5)|(5==6)逻辑运算应用

!false; true&&false; true||false; false|false; true&true; true^false; (6>5)&&(7>5); (6>10)||(7>5); !(8>10); (6>5)^(7>5);赋值运算将一个数据项的值赋给另一个数据项。运算符号为=,含义是将运算符右边的操作数的值赋给运算符左边的操作数;运算符分简单赋值运算与复合赋值运算;简单赋值运算:

i=1i=k+5复合赋值运算:有+=、-=、*=、/=、%=如:a+=b//等价于a=a+b;a-=b//等价于a=a-b;a*=b//等价于a=a*b;a/=b//等价于a=a/b;a%=b//等价于a=a%b;位运算位运算是定义在二进制位上进行的运算;位运算只针对整型数。注意,这里整型数包括byte,short,int和long四种;位运算包括:按位与,按位或,按位取反(即按位非),异或,移位运算,分左移和右移运算符号分别为:&、|、~、^、<<、>>。与运算(&)运算的两个操作数都是1的时候,运算的结果才是1,否则结果为0;

00001111&01100100---------------------00000100运算的结果会是多少呢?

01011101&01100101---------------------或运算(|)运算的两个操作数都是0的时候,运算的结果才是0,否则结果为1;

00001111|01100100---------------------01101111运算的结果会是多少呢?

01011101|01100101---------------------取反运算(~)单目运算符,只需要一个操作数,把操作数的每一位值变为相反,即0变为1,1变为0~01100100---------------------10011011运算的结果会是多少呢?

~01011101---------------------异或运算(^)运算的两个操作数值相同的时候,运算的结果为0,若两个操作数不同,则结果为1;

00001111^01100100---------------------01101011运算的结果会是多少呢?

01011101^01100101---------------------移位运算:左移(<<)将整个二进制数字串向左移动若干位,高位舍弃,低位补零;一般来说数据左移一位相当乘以2;

--------------------------00000100左移3位00000100000

移位运算:右移(>>)将整个二进制数字串向右移动若干位,低位舍弃,高位填充原高位之值;一般来说数据右移一位相当除以2;

-----------------------------00000100右移1位0000000100条件运算条件运算也称为三元运算,需要三个操作数参与;格式为:<表达式1>?<表达式2>:<表达式3>表达式可以是变量或者常量。表达式1必须是布尔值,表达式2与表达式3类型要相同。如果表达式1为true,则计算表达式2的值,如果表达式1为false,则计算表达式3的值。如:true?10:20;条件运算应用 (true)?("A"):("B");(false)?(10):(15); (5==4)?(true):(false); (5>4)?(10):(20); (8>10)?(3+2):(4+5); (6!=8)?(“A”+“B”+“C”):(“E”+“F”+“G”);(10<(8+3))?("Yes"):("No");字符串运算字符串是String类型,为复合类型。定义方法为:Stringstr1;Stringstr2=“one”;用双引号括起来的零个或者多个字符;“”,“Hello”,“Yes”可以用连接运算符(+)把两个或多个字符串常量连接在一起,组成更长的字符串。如:“我”+“是”+“谁”的结果是:“我是谁”字符串运算应用Stringstr1="one";Stringstr2="two";Stringstr3="_";Stringstr4=str1+str2;Stringstr5=str1+str3+str2;str4:“onetwo““onetwo“str5:“one_two““one_two“类型转换表达式:由操作数和运算符按一定的语法规则组成;如:(1.1+2)*2每个表达式都会产生一定的值,称为表达式值;表达式中可能有不同类型的数据进行混合运算,在运算时需要进行类型转换。类型转换表达式1+2.5结果值为3.5,这个结果值属于什么类型呢?Java中的类型转换分:自动类型转换系统自动转换数据类型,低位数据类型可以自动自动转换成高位数据类型。强制类型转换;高位数据类型转换成低位数据类型转换时,系统不能自动转换数据类型,需强制转换。自动类型转换判断如下语句有无语法错误:byteb1=1;byteb2=2;byteb3=b1+b2;自动类型转换两个取值范围比int小的类型或跟int取值范围相同的数据进行运算时,得到的结果都会是整型。

b1+b2的结果得到是一个int类型值3,int类型值不能直接赋给byte类型;如下改正:byteb1=1;byteb2=2;intb3=b1+b2;自动类型转换类型转换表变量1变量2结果值变量1变量2结果值

bytebyteintlonglonglongbyteshortintbytefloatfloatintbyteintintfloatfloatshortintintlongfloatfloatintintintfloatdoubledoublelongintlongdoubledoubledouble自动类型转换intb1=1;longb2=2;<?>b3=b1+b2;以下代码有无错,如有错应如何更改?bytec1=1;bytec2=c1+1;d3的值是多少,3or3.5?intd1=7;intd2=2;intd3=d1/d2;d3的值是多少,3or3.5?intd1=7;doubled2=2;doubled3=d1/d2;强制类型转换强制性地将地将数据的类型进行转换。(数据类型)变量名

intb3=(int)3.7longx;inty;y=(?)(x+1);

intb1=7;intb2=2;<?>b3=(double)b1/b2;以下代码有没错误,就如何修改?

bytea=7;intb=2;doublec=3.4;intd=a/b+c;运算符的优先级运算符之间的先算和后算关系叫优先关系。

a+b>>c+d//先算“+”还是先算“>>”?(a+b)>>(c+d)//运算先后关系一目了然括号()的优先级最大,为了增加代码的可读性,应使用括号。程序的输入/输出System.out.println(“……”)表示在控制台上输出括里面的内容,并换行;System.out.print(“……”)表示在控制台上输出括号里面的内容,但不换行;通过main()方法接收参数publicstaticvoidmain(String[]args){ Stringstr1=args[0];//接收第一个参数

Stringstr1=args[1];//接收第二个参数

Strin

温馨提示

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

评论

0/150

提交评论