第二章 Java基础语法(6)

2.6.2              算术运算符

Java中的算术运算符和其他大多数语言的都是相同的,也包含了加(+)、减(-)、乘(*)、除(/)以及取模(%)五种操作符。

我们先看看前三种算术运算符。这三种操作符和我们所知道的加、减、乘运算的法则没有区别。下面这个例子展示了算术操作符的用法:

//MathOp1.java

//算术运算符的示例。

public class MathOp1 { 

    public static void main(String[] args) {

        int i,j,k;

        i = 20;

        j = 25;

        k = i + j;

        System.out.println("i + j: " + k);

        k = i - j;

        System.out.println("i - j: " + k);

        k = i * j;

        System.out.println("i * j: " + k);

        double d, f, g;

        d = 4.5;

        f = 6.5;

        g = d + f;

        System.out.println("d + f: " + g);

        g = d - f;

        System.out.println("d - f: " + g);

        g = d * f;

        System.out.println("d * f: " + g);

    }

}

/*输出结果:

i + j: 45

i - j: -5

i * j: 500

d + f: 11.0

d - f: -2.0

d * f: 29.25 */

接着我们再看除(/)以及取模(%)这两个操作符。除法运算大家应该都熟悉的,可是Java中的除运算符和C语言的一样,有一些特殊,那就是当运算符两边都是整数的话,那么得到的结果会直接去掉小数结果而保留整数部分。例如:6/4的结果是1而不是1.59/10的结果是0而不是0.9。而当除号(/)有一边是浮点型数据时,则得到的结果才会是浮点型的。例如:6.0/4的结果是1.5。而取模运算符(%)换个更容易记住的名词就是取余运算符(我不知道其他地方是怎么说的,反正我小学的时候老师教的就是取余运算)。一般来说,“%”两边应该是整数,结果是两个整数相除之后的余数,例如:4%6的结果是410%8的结果是28%2的结果是0。接着看下面的代码。

//MathOp2.java

//除以及取模运算符的示例。

public class MathOp2 {

    public static void main(String[] args) {

        int i,j,k;

        i = 25;

        j = 20;

        k = i / j;

        System.out.println("i / j: " + k);

        k = i % j;

        System.out.println("i % j: " + k);

       

        double d,f,g;

        d = 25.0;

        f = 20.0;

        g = d / f;

        System.out.println("d / f: " + g);

    }

}

/*输出结果:

i / j: 1

i % j: 5

d / f: 1.25

*/

从这一节开始,我们的程序可能多一点,希望读者,特别是初学者,不要光想着看这些例子,重要的是需要电脑上将代码敲一敲,做一些练习,这样对于学编程是大有好处的。

2.6.3              ++ --

学过C语言的人看着这两个符号应该都不陌生,它们就是大名鼎鼎的自加与自减运算符,在我的印象中,C语言首先使用它们。可能初学者会问,为什么会出现这两个奇怪的运算符?因为在程序设计中,像 i=i+1 这样的运算经常用在循环语句中,所以C语言的设计者从简单性考虑,设计了这两个运算符。

自加运算符(++)表示将变量的值增加1,而自减运算符(--)表示将变量的值减少1。让我们看看下面的代码片段(注意一点,这两个运算符必须要挨着变量才行)。

int i=10, j=5; 

i++;             //相当于 i=i+1; 运行该条语句之后,i的值等于11

j--;               //相当于 j=j-1; 运行该条语句之后,j的值等于4

从上面的例子看来,这个自加和自减运算符好像一般,也没有什么了不起的。可是学过C语言的人应该知道,这两个运算符还有一个常让人搞糊涂的特点,就是这它们不但可以放在变量之前,还可以放在变量之后。我把上面的例子改改,就变成下面这样了。

int i=10, j=5; 

++i;            

--j;

运行这段代码之后,i的值是11j的值等于4,与之前的例子没有什么不同。可是等我们看了下面这个例子,你就会明白这两个运算符不简单。

int i = 10,j=10,k,m;

k = ++i;

m = j++;     

想想看ijkm的值分别是多少呢?我就直接把答案说出来:ij的值等于11k的值也等于11,而m的值等于10。产生这种结果的原因如下:++放置在变量之前,表示先对变量进行运算,然后再使用变量的值;而放在变量之后,表示先使用变量的值(如果有赋值运算符的话,则把变量的值赋给其他变量),然后再对变量进行运算。所以对于k=++i来说,会先对i进行自加运算,运算完成后i的值等于11,然后再将i的值给k,这时k的值也等于11了;而对 m=j++ ,则是先取得j的值赋给m,这时m的值等于11,然后在对j进行自加运算,运算完成后,j的值等于11。上面只举了++的例子,--运算符也是一样,我就不再多说了。

码了这么多字,不知道有没有讲清楚。其实这两个运算符还不止这么简单,再给大家看个复杂的:m = i+++++j;是不是头晕了?那我把它稍微变一下:m=(i++) + (++j),这个能看清楚一些么?大家可以编个程序试试mij的值各是多少。如果没想通也没关系,我不建议大家在程序中使用这么复杂的东西的,一切简单就好。

2.6.4              关系运算符

关系运算符用于对两个数值型的数据做比较。基本的关系运算符有六个:>(大于)、<(小于)、>=(大于或等于)、<=(小于或等于)、= =(等于)、!=(不等于)。如果运算符两端的数值的关系符合运算符的含义,则结果为“true”,否则为“false”。举几个例子:3>2的结果为true4<=3的结果则为false2.5 != 3的结果为true’a’ = =’a’结果为true。从上面的几个例子中,大家想必看出来了,关系运算符基本上可以应用于所有的基本数据类型,为什么说基本呢,就是因为有布尔类型的缘故,两个布尔类型的数值不能进行“大于”或者“小于”的运算的。

另外,还需要让大家注意一点,书写到现在,我们主要考虑的是基本数据类型的操作,在之后的章节中,我们还会提到对象的操作。我们之后尤其要关注的是对象的等于操作,你会发现对于对象来说,比较两个对象如果只用“= =”运算符是远远不够的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值