一. 对自增运算符的再次认识
首先先明白一点,运算符是运算的符号化表示,每一种运算符的背后都代表着特定的运算。这些运算的形式是各种各样的,在这里我们将重新讨论自增运算符,符号为++。
对自增运算符进行演示,结果如下:
我们开始设想的是自增运算是在自身数值的基础上,进行常量的相加,这个常量可以不是1,当我们进行检测时发现了错误。这里的错误有两个,自增运算是固定加一,且自增运算符的书写是固定的,就是++不需要添加常量。
我们重新书写了java源程序,用DOS检测的结果为:
二. 谈论自增运算符参与复杂运算时的情况分析
DOS的检测结果显示了精度缺失的错误。表明了我们对于java的默认类型规则掌握的还不是很熟悉。b*a++, 计算出来的结果默认的是int,当将结果赋值给一个byte类型时,当前的结果为12,虽谈没有超过byte的范围,但是由于右侧是变量进行的计算,因此,以后很有可能会超过byte定义的范围,所以报告显示“可能会有损失”。如果我们重新定义一个int c=1; c=b*a++; DOS结果显示正常。如果是常量int类型,系统会自动判断大小,然后进行强制类型转换。如果是+=之类的运算符,系统也会自动判断,强制转换。
如果我们在主函数的范围内,直接书写byte a=3,b=4;和b*a++; 然后输出b,DOS中将显示b*a++不是语句。
总结:在自增或者自减运算符的知识点中,有这么几点需要注意:一是书写的规则,二是++a和a++的优先级问题,三是自增或者自减参与运算时的精度损失问题。