作者prott (mcik)
看板C_Sharp
標題[問題] if else 行數縮減
時間Thu Nov 10 18:45:07 2016
最近在練習一些邏輯基本題
但是沒有正確答案
想請問一下,下面如何縮減行數
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)));
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 58.114.193.20
※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1478774710.A.8E3.html
→ shuangrain: 可讀性降低很多,建議還是以可閱讀為主 11/10 19:24
→ ssccg: 你原程式跟簡化的不一樣? a > 5 && b <= 5 && a > i這條 11/10 19:44
→ ssccg: 只以這個例子來說,四個條件加起來不就是所有情況了? 11/10 19:45
→ ssccg: 只剩 a > i 11/10 19:45
→ ssccg: for(int i = 0; i < 10 && i < a; i++) { count += i; } 11/10 19:52
→ jizang: 推,人看得懂最重要~ 11/10 23:25
推 mepowerlmay: 設計模式 鏈結者模式 11/14 01:29
推 YahooTaiwan: 若你只是想 "省行數",那完全沒必要 11/14 02:56
推 largesperm: 不要說別人看不看得懂好了 你縮很短 11/15 14:32
→ largesperm: 下星期連你都看不懂了 11/15 14:32
推 jasonkey123: 重點是省了行數,跑起來也沒比較快... 12/03 10:12