算术运算符1-知识点整理
虽然运算符有很多种,但是本小节只是介绍算术运算符。除了常见的加减乘除外(+, -, *, /),还介绍了模运算和连接符运算。
这里需要主要的是/,模运算%和连接符运算。下面逐一地介绍这三种运算中的知识点,理清脉络。
一. /运算知识点
这里谈论/运算,不去说+-*,就在于书写的整型在这三者的运算中,绝对不会产生小数。但是在/运算中,会产生小数,例如System.out.println(5/2); DOS中输出的结果为2。这个现象超出了我们固有的思维,这说明JAVA程序中的运算自有它的规则,不能等同于日常生活中的计算。原理就在于JAVA中书写的数值如果不定义的话,都有其默认的类型,5和2都是int型,计算后JAVA依旧认定是int型,所以虽然结果为2.5,但是这是浮点型,不符合默认类型,所以会强制转换类型。这就是/需要注意的地方。
我想编写一个符合日常生活的的程序,来输出2.5。程序如下:结果显示,计算机先计算了(5/2),且直接化为了int2,说明我设计的语法是有问题的。那么,到底怎么来编写一个源代码,使其能够按照日常的计算结果输出呢?
二. 模运算%知识点
模运算需要主要的知识点比较多,为什么会多?原因在于JAVA语言是借用了这一概念,但又不完全等同于常见的模运算。不同之处:有负数参与的模运算,计算结果的正负等同于模运算中的被取余数。→这个视频中讲解错了,通过在DOS中测试System.out.println(5/-2); 发现输出的结果为-2,这说明上述说法是错误的。如果抛开错误的这点,其实模运算也没什么特别的。→理解错误,/不是取模的符号,%才是取模的运算符。
三. 连接符运算
连接符是从加运算上发展,借用了加法符号。之前变量的运算中,主要是数值型,字符型之间进行运算,无论是什么字符,在输出语句中最终都是输出一个具体的数值。包括System.out.println('你'+1); 这种情况,之前也有想过为什么输出的都是数值,而不是括号内所显示的内容。通过学习连接符知识点,我们发现输出语句中,只有字符串类型才会被输出到DOS控制台上,其他的都不行。这里还涉及一个强制类型转换,看下图输出语句为"A="+a,最终DOS输出的其实是字符串,a在范围内是变量,输出的自然是字符串A=和变量a的值,结果为A=4,没看到有强制类型转换啊,还是说全都转换成了字符型?
我又产生了一个疑问,在连接符的运算中,连接符应该是一步步地合并确定类型的数据的。为了验证这点,我们用一个没定义的a来试试。
观察控制台输出的结果,在最终的输出中,连接符并不是,不经过检查,就直接输出A=c,而是检查c到底是什么类型的数据,发现c是一个没有定义的变量c,就在DOS中直接报错。有没有可能将c当作字符型呢?估计格式不对。进行了检测,结果如下:显示,我们得出的结论没有错,在没有字符串时,全部强制转为数值型计算,有了字符串型,结果又化为了字符串型。