自增与自减在单的算法中不是特别的烧脑,也算是比较好理解,但是一旦在学习的时候头脑不能保持清醒了,那就是一件非常痛苦的事情。
所以,本人也是为了防止自己脑壳痛,还是把这个理解清楚,也希望能帮助大家
首先,我们先认识一下 ++ 、-- 的基本运算操作
i++ / i-- :变量在前,++ / --在后,所以是先拿值,在运算
++i / --i :++ / -- 在前,变量在后,所以是先运算,然后拿值
【例:int i = 2;
int j = 3;
int m = i++ + --j ; //注意:i+++j 和 i+ ++j 是不一样的,因为中间有空格
System.out.println(m);
System.out.println( i + "和"+ j );
/* 例题分析:
整个步骤分为两块: i++ 和 --j
i++ :由于是变量在前,++在后,所以是先拿值,再运算,因此 i++ 一> 分为(值;运算) ,即(i ;i+1)一>拿值后 i = 2
--j :由于是--在前,变量在后,所以是先运算,再拿值,因此 --j 一> 分为(运算;值),即(j-1 ; j)一> 运算后 j = 2
所以:m = 2 + 2 ;
【特别注意!!!最后输出的 i 是运算后的 i 的值】
【注意:(值;运算) / (运算;值)都是从左往右走】
*/
】
通过上面这个简单的题目,我们可以基本的认识自增自减的运算过程,接下来可以结合其他运算符,做一个更深层次的运算
例题:
int a = 3;
int b = 4;
int c = (a++)/3+(--b)*2-(a--)%6+(b++)*3-(b--);
System.out.println(a+" "+b+" "+c);
/*(a++)/3 3/3 1 a=4 b=4
*(--b)*2 3*2 6 a=4 b=3
*(a--)%6 4%6 4 a=3 b=3
*(b++)*3 3*3 9 a=3 b=4
*(b--) 4 4 a=3 b=3 c=8
*/
ok,通过这两个题目和个人的做题方法,不知道大家有没有很熟练的使用自增和自减呢,如果还有什么不明白的可以在评论区评论的,当然,如有不当的地方请多多指点,谢谢大家