[问题] if else 行数缩减

楼主: prott (mcik)   2016-11-10 18:45:07
最近在练习一些逻辑基本题
但是没有正确答案
想请问一下,下面如何缩减行数
int count = 0;
for (int i = 0; i < 10; i++)
{
if (a <= 5 && b <= 5 && a > i)
count += i;
else if (a <= 5 && b > 5 && a > i)
count += i;
else if (a > 5 && b <= 5 && a > i)
count += i;
else if (a > 5 && b > 5 && a > i)
count += i;
}
我想的到的方法是用三元运算子来简化,但感觉很不实用,不知道还有其他方法吗?
count += a <= 5 && b <= 5 && a > i ? i :
(a <= 5 && b > 5 && a > i ? i :
(a > 5 && b <= 5 && a > i ? 3 :
(a > 5 && b > 5 && a > i ? i : 0)));
作者: shuangrain (粗奶丸)   2016-11-10 19:24:00
可读性降低很多,建议还是以可阅读为主
作者: ssccg (23)   2016-11-10 19:44:00
你原程式跟简化的不一样? a > 5 && b <= 5 && a > i这条只以这个例子来说,四个条件加起来不就是所有情况了?只剩 a > ifor(int i = 0; i < 10 && i < a; i++) { count += i; }
作者: jizang (阿鲁米)   2016-11-10 23:25:00
推,人看得懂最重要~
作者: mepowerlmay (用心,找对人)   2016-11-14 01:29:00
设计模式 链结者模式
作者: YahooTaiwan (超可爱南西我老婆)   2016-11-14 02:56:00
若你只是想 "省行数",那完全没必要
作者: largesperm (reindeer)   2016-11-15 14:32:00
不要说别人看不看得懂好了 你缩很短下星期连你都看不懂了
作者: jasonkey123 (jasonkey123)   2016-12-03 10:12:00
重点是省了行数,跑起来也没比较快...

Links booklink

Contact Us: admin [ a t ] ucptt.com