递增、递减与指定运算符,老实说常成为初学者的一个恶梦,因为有些程序中若写得精简,这几个运算符容易让初学者搞不清楚程序的真正运算结果是什么;事实
上,使用这几种运算符的目的除了使让程序看来比较简洁之外,还可以稍微增加一些程序执行的效率。 在程序中对变量递增1或递减1是很常见的运算,例如: int i = 0;
i = i + 1; System.out.println(i); i = i - 1; System.out.println(i); 这段程序会分别显示出1与0两个数,您可以这么写这个程序: int i = 0;
System.out.println(++i); System.out.println(--i); 其中写在变量 i 之前的++与--就是“递 增运算符”(Increment operator)与“递减运算符”(Decrement operator),当它们撰写在变量之前时,其作用就相当于将变量递增1与递减1: ++i;
// i = i + 1;
--i; // i = i - 1; 您可以将递增或递减运算符撰写在变量之前或变量之后,但其实两者是有差别的,将递增(递减)运算符撰写在变量前时,表示先将变量的值加(减)1,然后再传 回变量的值,将递增(递减)运算符撰写在变量之后,表示先传回变量值,然后再对变量加(减)1,例如: int i = 0;
int number = 0; number = ++i; // 相当于i = i + 1; number = i; System.out.println(number); number = --i; // 相当于i = i - 1; number = i; System.out.println(number); 在这段程序中,number的值会前后分别显示为1与0,再看看下面这段: int i = 0;
int number = 0; number = i++; // 相当于number = i; i = i + 1; System.out.println(number); number = i--; // 相当于 number = i; i = i - 1; System.out.println(number); 在这段程序中,number的值会显示前后分别为0与1。 接下来看“指定运算符”(Assignment operator), 到目前为止只看过一个指定运算符,也就是(=)这个运算符,事实上指定运算符还有以下的几个:
每个指定运算符的作用如上所示,但老实说若不是常写程序的老手,当遇到这些指定运算符时,有时可能会楞一下,因为不常用的话,这些语法并不是那么的直觉。 使用++、--或指定运算符,由于程序可以直接在变量的内存空间中运算,而不用取出变量值、运算再将数值存回变量的内存空间,所以可以增加运算的效 率,但以现在电脑的运算速度来看,这一点的效率可能有些微不足道,除非您这类的运算相当的频繁,否则是看不出这点效率所带来的改善,就现在程序撰写的规模 来看,程序的易懂易读有时反而是重点,可以的话尽量将程序写的详细一些会比较好,千万不要为了卖弄语法而滥用这些运算符。 |