购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3 运算符

知识点讲解:光盘:视频\PPT讲解(知识点)\第3章\运算符.mp4

运算符是程序设计中重要的构成元素之一,运算符可以细分为算术运算符、位运算符、关系运算符、逻辑运算符和其他运算符。在本节的内容中,将详细讲解Java语言中运算符的基本知识。

3.3.1 算术运算符

在数学中有加减乘除运算,算术运算符(Arithmetic Operators)就是用来处理数学运算的符号,这是最简单、也最常用的符号。在数字的处理中几乎都会用到算术运算符号,算术运算符可以分为基本运算符、取余运算符和递增或递减运算符等几大类。具体说明如表3-3所示。

表3-3 算术运算符

类 型

运算符

说 明

基本运算符

+
-
*
/




取余运算符

取余

递增或递减

++
——

递增
递减

1.基本运算符

在Java程序中,使用最广泛的便是基本运算符。

实例008 使用基本运算符的加减乘除4种运算

源码路径 \daima\3\JiBen1.java 视频路径 \视频\实例\第3章\008

实例文件JiBen1.java的主要代码如下所示。

public class JiBen1 
{
public static void main(String args[])
{
   int a=12;
   int b=4;
//运算符
   System.out.println(a-b);
   System.out.println(a+b);
   System.out.println(a*b);
   System.out.println(a/b);
}
}
范例015:演示基数运算的过程
源码路径:光盘\演练范例\015\
视频路径:光盘\演练范例\015\
范例016:实现加密处理
源码路径:光盘\演练范例\016\
视频路径:光盘\演练范例\016\

执行后的效果如图3-7所示。

图3-7 执行效果

注意: 分母为零的情况

在计算机运算中的运算和数学运算有些不同,一般来说分母不能为零,为零会发生程序错误,但是有时程序分母为零并不是错误,例如下面的代码【光盘\daima\3\Jiben.java】。

public class Jiben {
public static void main(String args[])
{
   int AAA=126;
//整型数据分母不能为零
   System.out.println(a/0);
     }
}

将上述代码编译后会得到如图3-8所示的结果。

图3-8 运行结果

上面的结果提示用户分母不能为零,如果将上述代码中的“int AAA=126”改为“double AAA=126”后,编译后会得到如图3-9所示的结果。

图3-9 更改后的结果

在基本运算符中,只要将分子定义为double型,则分母为零是正确的,得到的值是无穷大,这一点希望初学者加以理解。

2.求余运算符

求余运算的结果不一定总是整数,它的计算结果是使用第一个运算数除以第二个运算数,得到一个整除的结果后剩下的值,也就是余数。由于求余运算符也需要进行除法运算,因此如果求余运算的两个运算数都是整数类型,则求余运算的第二个运算数不能是0,否则将引发除以零异常。如果求余运算的两个操作数中有1个或者2个是浮点数,则允许第二个操作数是0或0.0,只是求余运算的结果是非数:NaN。0或0.0对零以外的任何数求余都将得到0或0.0。

求余运算符是一种很奇怪的运算符,在数学中很少接触过,其实可以很简单地理解它。求余运算符一般被用在除法中,它的取值不是商,而是余数,如5/2,它取的是余数,所以结果是1,而不是商值结果2.5。

实例009  使用“%”运算符

源码路径 \daima\3\Yushu.java 视频路径 \视频\实例\第3章\009

实例文件Yushu.java的主要代码如下所示。

public class Yushu
{
public static void main(String[] args){
//求余数
int A=19%3;
int K=-19%-3;
int Q=19%-3;
int J=-19%3;
System.out.println("A=19%3的余数"+A);
System.out.println("K=-19%-3的余数"+K);
System.out.println("Q=19%-3的余数"+Q);
System.out.println("J=-19%3的余数"+J);
}
}
范例017:演示取模运算的规律
源码路径:光盘\演练范例\017\
视频路径:光盘\演练范例\017\
范例018:用三元运算符判断奇偶数
源码路径:光盘\演练范例\018\
视频路径:光盘\演练范例\018\

执行后的效果如图3-10所示。

图3-10 执行效果

3.递增递减

递增递减运算符分别是指“++”和“——”,每执行一次,变量将会增加1或者减少1,它可以放在变量的前面,也可以放在变量的后面。无论哪一种都能改变变量的结果,但它们有一些不同,这种变化让初学程序的人甚感疑惑。递增、递减对于刚学程序的人来说是一个难点,读者一定要强加理解,理解的不是++与——的问题,而是在变量前用还是在变量后用的问题。

实例010 使用递增递减运算符

源码路径 \daima\3\Dione.java 视频路径 \视频\实例\第3章\010

实例文件Dione.java的主要代码如下所示。

public class Dione{
public static void main(String args[])  {
  int a=199;
  int b=1009;
//数据的递增与递减
  System.out.println(a++);
  System.out.println(a);
  System.out.println(++a);
  System.out.println(b——);
  System.out.println(b);
  System.out.println(——b);
}
}
范例019:演示递增递减运算符的用法
源码路径:光盘\演练范例\019\
视频路径:光盘\演练范例\019\
范例020:更精确地运用浮点数
源码路径:光盘\演练范例\020\
视频路径:光盘\演练范例\020\

执行后的效果如图3-11所示。

图3-11 执行效果

看了上述执行结果后,相信大多数读者都会一头雾水。在上面程序中,a++是先执行程序才加1,++a是先加1再执行程序,a——是先执行a的值再减1,——a是a先减1,然后再执行程序。代码“system.out.println(a++);”是先执行然后再加1,所以它输出的值应该是初始值199,“system.out.println(a);”因为前一句代码将其加1,所以结果有所变化,结果为200,“system.out.println(++a)”是先加1,其结果就是2001,而后面的代码相信读者也应该懂了。

3.3.2 关系运算符和逻辑运算符

在Java程序设计中,关系运算符(Relational Operators)和逻辑运算符(Logical Operator)显得十分重要。关系运算符是指值与值之间的相互关系,逻辑(logical)关系是指可以用真值和假值链接在一起的方法。

1.关系运算符

在数学运算中有大于或者小于、等于、不等于的关系,在程序中可以使用关系运算符来表示上述关系。在表3-4中列出了Java中的关系运算符,通过这些关系运算符会产生一个结果,这个结果是一个布尔值,即true或false,在Java中任何类型的数据都可以用“==”进行比较是不是相等,用“!=”比较是否不相等,只有数字才能比较大小,关系运算的结果可以直接赋予布尔变量。

表3-4 关系运算符

类 型

说 明

==

等于

!=

不等于

>

大于

<

小于

>=

大于等于

<=

小于等于

2.逻辑运算符

布尔逻辑运算符是最常见的逻辑运算符,用于对Boolean型操作数进行布尔逻辑运算,在Java中的布尔逻辑运算符如图3-5所示。

表3-5 逻辑运算符

类 型

说 明

&&

与(AND)

||

或(OR)

异或(XOR)

|

简化或(Short-circuit OR)

&

简化并(Short-circuit AND)

非(NOT)

逻辑运算符与关系运算符运算后得到的结果一样,都是Boolean类型的值。在Java程序设计中,“&&”和“||”布尔逻辑运算符不总是对运算符右边的表达式求值,如果使用逻辑与“&”和逻辑或“|”,则表达式的结果可以由运算符左边的操作数单独决定。通过表3-6读者可以了解常用逻辑运算符号“&&”、“||”、“!”运算后的结果。

表3-6 逻辑运算符

A

B

A&&B

A‖B

!A

false

false

false

false

true

false

true

false

true

true

true

false

false

true

false

true

true

true

true

false



标识符是严格区分大小写的,在Java中,no和No是完全不同的。还需要注意的是虽然使用$符号在语法上是被允许的,但在编码规范中规定尽量不要使用它,因为它容易混淆。

3.4.2 关键字

关键字是Java系统保留使用的标识符,也就是说只有Java系统才能使用,程序员不能使用这样的标识符。关键字是Java中的特殊保留字,到目前为止,Java语言保留的关键字如表3-10所示。

表3-10 Java关键字

从表3-10中可以看出,true、false和null都是Java中定义的特殊值,虽然它们不是关键字,但也不能作为类名、方法名和变量名等。另外,表中的goto和const是两个保留字(reserved word),保留字的意思是Java现在还未使用这两个单词作为关键字,但可能在未来的Java版本中使用这两个单词作为关键字。 JM76yXmXTY7QCP4/aFoiqyeQa+X14Rx60Wjd19ZzqXqWA+FImgQ3Ef6eXP90hFZJ

点击中间区域
呼出菜单
上一章
目录
下一章
×