A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 251855915 中级黑马   /  2016-4-5 22:27  /  570 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. int a=1,b=2;
  2. int c=(a+b>3?a++:++b);
复制代码

先赋值再运算,为什么a没有进行+1呢?
求大神解答啊

2 个回复

正序浏览
因为a+b>3false,执行++b,如果a+b>3true才执行a++,a++没有执行,所以没有加1
回复 使用道具 举报
这是三元运算符啊,
int a=1,b=2;
int c=(a+b>3?a++:++b);
如果a+b大于三不成立,就将第二个表达式++b赋值给c ,第一个表达式则不执行.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马