黑马程序员技术交流社区

标题: 关于++ 和一个大括号的问题 [打印本页]

作者: why910107    时间: 2016-6-6 22:53
标题: 关于++ 和一个大括号的问题
本帖最后由 why910107 于 2016-6-6 22:54 编辑

class H {
    public static void main(String [] args){                                                  
          int num=100;
          if(num ++ >100); {
          num =200;
       }
          System.out.println(num);
    }
}

看码说结果  应该是多少啊
作者: 见著    时间: 2016-6-6 23:00
100,++在右边,num先参与比较运算才自增,if结果为false,输出100
作者: why910107    时间: 2016-6-6 23:08
见著 发表于 2016-6-6 23:00
100,++在右边,num先参与比较运算才自增,if结果为false,输出100

你试了吗   怎么结果是200
作者: 见著    时间: 2016-6-6 23:41
那应该是运算符优先级的问题吧,++的优先级大于>.我也有点搞不明白了,明天再给你答复。
作者: 见著    时间: 2016-6-6 23:47
你的格式有错误,if后边有个分号;我说呢,下次认真一点。唉,差点怀疑我学的东西对不对了。输出J结果应为101,num自增后才执行输出语句。早点睡吧
作者: demon凯    时间: 2016-6-6 23:53
额   你打了个分号   就把if语句结束了    但后面大括号的代码块不是也会执行吗   所以打印的不是200吗  虽然我没试过
作者: ancheng    时间: 2016-6-7 00:07
  1. public class Test2 {
  2.         public static void main(String[] args) {

  3.                 int num = 100;
  4.                 if (num++ > 100)
  5.                         ;
  6.                 {
  7.                         num = 200;
  8.                 }
  9.                 System.out.println(num);
  10.         }
  11. }
复制代码

作者: ancheng    时间: 2016-6-7 00:10
  1. public class Test {
  2.         public static void main(String[] args) {

  3.                 int num = 100;
  4.                 if (num++ > 100)
  5.                         ;
  6.                 //下面是代码块,对num进行赋值运算,所以num最终必然是200
  7.                 {
  8.                         num = 200;
  9.                 }
  10.                 System.out.println(num);
  11.         }
  12. }
复制代码

作者: yesnowoshiqiang    时间: 2016-6-7 00:19
你们整的还挺乱
++前置,先运算,后使用
++后置,先使用,后赋值




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