”3.5 算术操作符”这部分如果你有其他语言的学习历程,可以很好理解,懂点数学上的四则运算的基本知识也可以,因为这块是属于数学上的算数计算。
importjava.util.*; importstaticnet.mindview.util.Print.*; publicclassMathOps { publicstaticvoidmain(String[] args) { // Create a seeded random number generator: Randomrand=newRandom(47); inti, j, k; // Choose value from 1 to 100: j=rand.nextInt(100) +1; print("j : "+j); k=rand.nextInt(100) +1; print("k : "+k); i=j+k; print("j + k : "+i); i=j-k; print("j - k : "+i); i=k/j; print("k / j : "+i); i=k*j; print("k * j : "+i); i=k%j; print("k % j : "+i); j%=k; print("j %= k : "+j); // Floating-point number tests: floatu, v, w; // Applies to doubles, too v=rand.nextFloat(); print("v : "+v); w=rand.nextFloat(); print("w : "+w); u=v+w; print("v + w : "+u); u=v-w; print("v - w : "+u); u=v*w; print("v * w : "+u); u=v/w; print("v / w : "+u); // The following also works for char, // byte, short, int, long, and double: u+=v; print("u += v : "+u); u-=v; print("u -= v : "+u); u*=v; print("u *= v : "+u); u/=v; print("u /= v : "+u); } }
/* Output:
j : 59
k : 56
j + k : 115
j - k : 3
k / j : 0
k * j : 3304
k % j : 56
j %= k : 3
v : 0.5309454
w : 0.0534122
v + w : 0.5843576
v - w : 0.47753322
v * w : 0.028358962
v / w : 9.940527
u += v : 10.471473
u -= v : 9.940527
u *= v : 5.2778773
u /= v : 9.940527
*/
上面的例子很全面,包含了整数和浮点数的加减乘除取余的四则运算。主要是有个Random类的对象生成一个随机整数或者小数,所以你每次的运行上面的数字都是不一样的。int和float在做除法的时候有个不同,整数的除法还是整数,如果有小数就把小数部分去掉了,所以它的结果是不精确的,不能说他错误(这里主要是为了保证类型一致)。而小数的除法是属于准精确的结果,不是完全精确,会有一些精度损失,遇到无限小数的情况下是肯定不准确的。这部分可以自己练习体会一下。
一元加、减操作符可以作为运算符缩写的一种,也可以作为一个数字正负判断的依据。例如
x=-a等同于x=x-a
x=a*(-b)这里的-就代表b的负数
下面一小节的自增自减符号,跟我们的一元加、减符号起到了类似的效果,只是多了一个前后语义上的问题。看下面的例子:
importstaticnet.mindview.util.Print.*; publicclassAutoInc { publicstaticvoidmain(String[] args) { inti=1; print("i : "+i); print("++i : "+++i); // Pre-increment print("i++ : "+i++); // Post-increment print("i : "+i); print("--i : "+--i); // Pre-decrement print("i-- : "+i--); // Post-decrement print("i : "+i); } }
/* Output:
i : 1
++i : 2
i++ : 2
i : 3
--i : 2
i-- : 2
i : 1
*///:~
++i是对i先加1后用i,i++是先用i再对i加1;--类似,最终++和--的操作数的数值都发生了变化;琢磨一会就可以了。