这几天通过学习java基础,然后了解到了一些关与java运算的一些东西。特作一下几点以供参考。
java运算符是一种特殊的符号,用来表示一些数据的赋值、运算或者比较,他的分类有很多,像关系运算符(也叫比较运算符),逻辑运算符,赋值运算符以及三元运算符。但是计算机语言当中的运算符跟我们数学中的运算符不可同日而语,就比如 = 在数学上这叫做等号,而在我们计算机语言中它表示赋值,就像a = 10这个表达式,它的意思是把10这个数的值赋给a,然后计算机会在给a分配一个内存把它保存起来。所以在面对java运算符的时候我们不能简单地把它当成我们所熟悉的数学运算符来运用。下面介绍下我们平时需要注意的几种运算符。
一、算术运算符中的 " % "
" % "在java中叫取模运算符。它的本质其实就是取余,比如9%4就应该等于1。如下图:
当两个正数参与取模运算时,很简单可以使用上图所示的方法计算出结果,那么当其中一个参数是负数是还能否使用这种方法计算呢,我们来看一个例子。
假如我们用上面讲的方法来计算,那它的结果应该是 - 1。让我们来运行一下看看。
的确是这样,那么如果是10 % ( - 3 ) = ? 我们来运行一下试试。
我们通过控制台的结果可以看到 10 % (-3)的结果是1,那为什么不是-1呢?在这里就要说一下取模的本质了。例如a%b,那么它的本质就是a % b = a - a / b * b。那么10 %(-3) = 10 - 10 / (-3) * (-3) = 1 。这么一看是不是就不会再算错了。以后如果看到负数取余就不要用简单地用来算术取余了。
二、自增(++)与自减(--)
上面介绍了取模运算,再来讲讲java运算符中的自增与自减。其实在一开始接触这个东西的时候也是觉得很不理解,对于这个运算符不是特别熟悉。我们先来看一个例子:
首先定义了一个int类型的变量i,并赋值为1,然后进行自增运算,问结果为多少?我们再来讲讲i++ 是什么意思,它其实等价于 i = i + 1;上面的 i 初量为1,那么自增以后结果也就是2。这应该很简单,那么如果 i = ++i,结果应该为多少?
通过运行的结果来看也是2。那么我们就此可以的出一个结论:当 i++ 和 ++ i 作为表达式来使用的时候,它们并没有实质上的区别,都表示自增,唯一不同的地方是i++ 表示先赋值再自增,++i 表示先自增再赋值。我们再来看一个例子。
在进行自增运算时,计算机会使用一个临时变量,先把值赋给临时变量(或者先自增),再进行自增,然后再把临时变量的值取出来。
左图:先自增再赋值,它就等价于 a = a + 1,j = a;所以j = 5 + 1 = 6;
右图:先赋值再自增,等价于 k = a ,a = a + 1;所以k的值还是5;
以上就是本次分享的全部内容了。打败我们的往往是一些细节,静下心来,慢慢感受编程语言带来的乐趣。