主题:求助!
牛欢笑!
[专家分:0] 发布于 2011-04-16 14:56:00
cans += ((sq_feet % COVERAGE == 0)) ? 0:1;我就是不明白后面的0,1到底赋给谁!求高手解析下!我还是菜鸟,麻烦说详细点!谢谢!
回复列表 (共4个回复)
沙发
ucchen [专家分:80] 发布于 2011-04-16 18:20:00
cans += ((sq_feet % COVERAGE == 0)) ? 0:1
第一步:sq_feet % COVERAGE
第二步:判断上述结果是否等于0
第三步:是的话为0,否者为1
第四步:cans = cans + 0或者1
这道题应该注意优先级的问题,其中?:的优先级为14,+=的优先级为15
板凳
牛欢笑! [专家分:0] 发布于 2011-04-16 22:58:00
[em12]谢谢了!
3 楼
limao090407 [专家分:60] 发布于 2011-04-16 23:08:00
当然根据优先级判断,最高的是括号内部,这是一个条件语句,如果括号内条件满足,满足右边值就为0,否则为1,然后再进行加赋值运算,即cans=cans+0或1
4 楼
f34355281 [专家分:50] 发布于 2011-04-17 10:19:00
当cans?? =??((sq_feet??%??COVERAGE??==??0))??为真的时候取???后面的值,为假取:后面的值
我来回复