黑马程序员技术交流社区

标题: java基础中一些常见的易错程序 [打印本页]

作者: 王雷    时间: 2012-9-25 23:46
标题: java基础中一些常见的易错程序
  1. 第一题
  2. int x = 1,y = 1;

  3. if(x++==2 & ++y==2)  {
  4.         x =7;
  5. }
  6. System.out.println("x="+x+",y="+y);  
  7. x=2   y=2
  8. ---------------------------------------------------
  9. 第二题
  10. int x = 1,y = 1;

  11. if(x++==2 && ++y==2)
  12. {
  13.         x =7;
  14. }
  15. System.out.println("x="+x+",y="+y);
  16. x=2  y=1
  17. ---------------------------------------------------

  18. 第三题
  19. int x = 1,y = 1;

  20. if(x++==1 | ++y==1)
  21. {
  22.         x =7;
  23. }
  24. System.out.println("x="+x+",y="+y);
  25. x=7  y=2
  26. ---------------------------------------------------

  27. 第四题
  28. int x = 1,y = 1;

  29. if(x++==1 || ++y==1)
  30. {
  31.         x =7;
  32. }
  33. System.out.println("x="+x+",y="+y);
  34. x=7  y=1
  35. ---------------------------------------------------
复制代码

作者: 史龙贤    时间: 2012-9-26 05:03
老套路:考查&和&&、|和||的区别,考查前++,后++区别。记住老毕说的,&前后都参与运算,如果前面为假,&&后面不参与运算。|前后都参与运算,如果前后为真,||后面不参与运算。前++,先回家吃饭再出去玩,后++先出去玩再回家吃饭。理解了上面,做题的时候仔细些,套公式就可以了。

第一题
思路:&前后都要运算。
x++ == 2表示x 是否等于2,否,然后x自增,结果x = 2;
++y == 2表示y 先自增1,此时y = 2,再判断 y == 2,结果是真。
if (假 & 真 = 假) {
x = 7;
}
显然 x 不会等于7,那么结果是x = 2, y = 2;

按照这样的思路下去后面不会出错的了,就写这么多!谢谢!

作者: 王雷    时间: 2012-9-26 08:49
哈哈 基础很不错啊  我有点蒙




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2