您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> JAVA >> 辅导 >> 正文    
  二级JAVA第三章辅导:运算符和表达式 【注册男护士专用博客】          

二级JAVA第三章辅导:运算符和表达式

www.nanhushi.com     佚名   不详 

运算符指明对操作数所进行的运算。按操作数的数目来分一元(如+-),二元运算符(如+、>)和三元运算符(如?:),它们分别对应于一元运算符来说,可以有前缀表达式(如++i)和后缀表达式(如采用中缀表达式(如a+b)。按照运算符功能来分,基本的运算符分下面几类:

算术运算符(+,-,*,/,%,++,--)
关系运算符(>,<,>=,<=,==,!=)
布尔逻辑运算符(!,&&,||)
位运算符(>>,<<,>>>,&,|,^,~)
赋值运算符(=,及其扩展赋值运算符如+=)
条件运算符(?:)
其它(包括分量运算符·,下标运算符[],实例运算符instance of,内存分配运算符new,强制类型转换运算符(类型),方法调用运算符()等)

本章中我们主要讲述前6类运算符。

§3.1算术运算符

算术运算符作用于整型或浮点型数据,完成算术运算。

一、二元算术运算符,如下表所示

运算符 用法 描述
+ op1+op2 加
- op1-op2 减
* op1*op2 乘
/ op1/op2 除
% op1%op2 取模(求余)

Java对加运算符进行了扩展,使它能够进行字符串的连接,如"abc"+"de",得到串"abcde"。我们将在第七章中讲解。

与C、C++不同,对取模运算符%来说,其操作数可以为浮点数,如37.2%10=7.2。

二、一元算术运算符,如下表所示:

运算符 用法 描述
+ +op 正值
- -op 负值
++ ++op,op++ 加1
-- --op,op-- 减1

i++与++i的区别:

i++在使用i之后,使i的值加1,因此执行完i++后,整个表达式的?为i,而i的值变为i+1。

++i在使用i之前,使i的值加1,因此执行完++i后,整个表达式和i的值均为i+1。

对i--与--i同样。

例3.1.下面的例子说明了算术运算符的使用

public class ArithmaticOp{
public static void main(String args[]){
int a=5+4;//a=9
int b=a*2;//b=18
int c=b/4;//c=4
int d=b-c;//d=14
int e=-d;//e=-14
int f=e%4;//f=-2
double g=18.4;
double h=g%4;//h=2.4
int i=3;
int j=i++;//i=4,j=3
int k=++i;//i=5,k=5
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("c="+c);
System.out.println("d="+d);
System.out.println("e="+e);
System.out.println("f="+f);
System.out.println("g="+g);
System.out.println("h="+h);
System.out.println("i="+i);
System.out.println("j="+j);
System.out.println("k="+k);
}
}

其结果为:

C:\>java ArithmaticOp

a=9
b=18
c=4
d=14
e=-14
f=-2
g=18.4
h=2.4
i=5
j=3
k=5

§3.2关系运算符

关系运算符用来比较两个值,返回布尔类型的值true或false? 关系运算符都是二元运算符,如下表所示:

运算符 用法 返回true的情况
> op1>op2 op1大于op2 
>+ op1>=op2 op1大于或等于op2 
< op1<op2 op1小于op2 
<= op1<=op2 op1小于或等于op2 
== op1==op2 op1与op2相等 
!= op1!=op2 op1与op2不等 

Java中,任何数据类型的数据(包括基本类型和组合类型)都可以通过==或!=来比较是否相等(这与C、C++不同)。

关系运算的结果返回true或false,而不是C、C++中的1或0。

关系运算符常与布尔逻辑运算符一起使用,作为流控制语的判断条件。如

if(a>b&&b==c)


§3.3布尔逻辑运算符

布尔逻辑运算符进行布尔逻辑运算,如下表所示:

op1 op2 op1&&op2 op1||op2 !op1 
false false false false true 
false true false true true 
true false false true false 
true true true true false 

·&&、‖ 为二元运算符,实现逻辑与、逻辑或。

·!为一元运算符,实现逻辑非。

·对于布尔逻辑运算,先求出运算符左边的表达式的值,对或运算如果为true,则整个表达式的结果为true,不必对运算符右边的表达式再进行运算;同样,对与运算,如果左边表达式的值为false,则不必对右边的表达式求值,整个表达式的结果为false。

下面的例子说明了关系运算符和布尔逻辑运算符的使用。

public class RelationAndConditionOp{
public static void main(Stringargs[]){
int a=25,b=3;
boolean d=a<b;//d=false
System.out.println("a<b="+d);
int e=3;
if(e!=0&&a/e>5)
System.out.println("a/e="+a/e);
int f=0;
if(f!=0&&a/f>5)
System.out.println("a/f="+a/f);
else
System.out.println("f="+f);
}
}

其运行结果为:

C:\>java RelationAndConditionOp

a<b=false
a/e=8
f=0

注意:上例中,第二个if语句在运行时不会发生除0溢出的错,因为e!=0为false,所以就不需要对a/e进行运算。

§3.4位运算符

位运算符用来对二进制位进行操作,Java中提供了如下表所的位运算符:位运算符中,除 ~ 以外,其余均为二元运算符。操作数只能为整型和字符型数据。

3.4.1补码

Java使用补码来表示二进制数,在补码表示中,最高位为符号?,正数的符号位为0,负数为1。补码的规定如下:

对正数来说,最高位为0,其余各位代表数值本身(以二进制?示),如+42的补码为00101010。

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。