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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 易水寒 于 2013-3-2 13:47 编辑

len=(len==1)?++len:--len这行代码是怎么执行的?或者说它到底是在给予一个什么样的条件?

求大神解惑!!

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 鼓励鼓励

查看全部评分

11 个回复

倒序浏览

回帖奖励 +5

是这样的,如果len为1就自增,不是就自减,比如如果len=1,代码执行后len=2;如果len=2,代码执行后len=1。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 鼓励鼓励

查看全部评分

回复 使用道具 举报
刘国涛 发表于 2013-3-2 11:24
是这样的,如果len为1就自增,不是就自减,比如如果len=1,代码执行后len=2;如果len=2,代码执行后len=1。 ...

那能不能直接(len==1)?
回复 使用道具 举报
考察的是三元运算符和一元运算符

len = ((len==1) ? ++len : --len)
len如果等于1执行++len然后赋值给len
len如果不等于1,执行--len并赋值给len

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 赞一个!

查看全部评分

回复 使用道具 举报
易水寒 发表于 2013-3-2 11:27
那能不能直接(len==1)?

而是len=(len==1)?也就是这点没有弄明白
回复 使用道具 举报
易水寒 发表于 2013-3-2 11:27
那能不能直接(len==1)?

后面要有表达式
回复 使用道具 举报
吴硕 发表于 2013-3-2 11:27
考察的是三元运算符和一元运算符

len = ((len==1) ? ++len : --len)

多谢解惑
明白了
回复 使用道具 举报
吴硕 发表于 2013-3-2 11:27
考察的是三元运算符和一元运算符

len = ((len==1) ? ++len : --len)

我一直都在从左向右推!:L
没去想它的优先级
回复 使用道具 举报
复制代码
这行代码代码解释如下:
  1. if(1==len){
  2.                           len=++len;
  3.                   }else{
  4.                           len=--len;
  5.                   }
复制代码
len=(len==1)?++len:--len;    //先运算等号=右边的部分(len==1)?++len:--len,之后把得到的值再赋给len

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 不错

查看全部评分

回复 使用道具 举报
len=(len==1)?++len:--len
拆开看len=右边是一个三元运算符    条件表达式(len==1)吗?如果等于len=就等于++len.如果不等于,那么len就等于--len
就是把右边三元运算的结果赋值给len

评分

参与人数 1黑马币 +18 收起 理由
黄玉昆 + 18

查看全部评分

回复 使用道具 举报
克零岚 发表于 2013-3-2 11:42
这行代码代码解释如下:len=(len==1)?++len:--len;    //先运算等号=右边的部分(len==1)?++len:--len,之后 ...

呵呵,谢谢昆哥啊,对于努力学习中的我来说,这是莫大的鼓励呢:loveliness:
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马