Chinaunix首页 | 论坛 | 博客
  • 博客访问: 285801
  • 博文数量: 115
  • 博客积分: 1951
  • 博客等级: 上尉
  • 技术积分: 728
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-26 14:05
文章分类

全部博文(115)

文章存档

2013年(4)

2012年(3)

2011年(26)

2010年(56)

2009年(26)

我的朋友

分类: Java

2011-11-22 14:49:29

一直以来,++, --语法浪费了太多人的时间。
说句实在话,++ -- 在C/JAVA语言中其实是一个很细节的语法,除了表达简练外,真的没有什么其它的好处了。
由于中国的C语言教程长期以来被谭浩强主宰,而谭又错误的把++ --作为一个C
语言重点来教,并增加了一些
难点,把本来很简单的语法,搞得复杂无比!
简单的来说,++i 和 i++,在单独使用时,就是 i=i+1。
而 a = ++i,相当于 i=i+1; a = i; (先i = i + 1,再使用i的值)
而 a = i++,相当于 a = i; i=i+1; (先使用i的值,再i = i + 1)
如果实在搞不明白++ --怎么回事,那也不是什么天塌下来的事。
因为a=++i完全可以写成 i++; a=i。 <br>a=i++完全可以写成 a=i; i++。
而且,这也是一种好的程序风格:++ -- 语句如非特殊需要,请单独一行使用。
  1. public class AutoInc {
  2.   public static void main(String[] args) {
  3.     int i = 1;
  4.     prt("i : " + i);
  5.     prt("++i : " + ++i); // Pre-increment
  6.     prt("i : " + i);
  7.     prt("i++ : " + i++); // Post-increment
  8.     prt("i : " + i);
  9.     prt("--i : " + --i); // Pre-decrement
  10.     prt("i : " + i);
  11.     prt("i-- : " + i--); // Post-decrement
  12.     prt("i : " + i);
  13.     prt("(i++)+(i++)+(i++)" + (i++)+(i++)+(i++));
  14.     prt("i : " + i);
  15.     prt("(i--)+(i--)+(i--)" + (i--)+(i--)+(i--));
  16.     prt("i : " + i);
  17.     prt("(++i)+(++i)+(++i)" + (++i)+(++i)+(++i));
  18.     prt("i : " + i);
  19.     prt("(--i)+(--i)+(--i)" + (--i)+(--i)+(--i));
  20.     prt("i : " + i);
  21.   }
  22.   static void prt(String s) {
  23.     System.out.println(s);
  24.   }
  25. }
执行结果:
  1. i : 1
  2. ++i : 2
  3. i : 2
  4. i++ : 2
  5. i : 3
  6. --i : 2
  7. i : 2
  8. i-- : 2
  9. i : 1
  10. (i++)+(i++)+(i++)123
  11. i : 4
  12. (i--)+(i--)+(i--)432
  13. i : 1
  14. (++i)+(++i)+(++i)234
  15. i : 4
  16. (--i)+(--i)+(--i)321
  17. i : 1

阅读(673) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~