[問題] 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