[問題] if else 行數縮減

看板C_Sharp (C#)作者 (mcik)時間8年前 (2016/11/10 18:45), 編輯推噓4(407)
留言11則, 7人參與, 最新討論串1/1
最近在練習一些邏輯基本題 但是沒有正確答案 想請問一下,下面如何縮減行數 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

11/10 19:24, , 1F
可讀性降低很多,建議還是以可閱讀為主
11/10 19:24, 1F

11/10 19:44, , 2F
你原程式跟簡化的不一樣? a > 5 && b <= 5 && a > i這條
11/10 19:44, 2F

11/10 19:45, , 3F
只以這個例子來說,四個條件加起來不就是所有情況了?
11/10 19:45, 3F

11/10 19:45, , 4F
只剩 a > i
11/10 19:45, 4F

11/10 19:52, , 5F
for(int i = 0; i < 10 && i < a; i++) { count += i; }
11/10 19:52, 5F

11/10 23:25, , 6F
推,人看得懂最重要~
11/10 23:25, 6F

11/14 01:29, , 7F
設計模式 鏈結者模式
11/14 01:29, 7F

11/14 02:56, , 8F
若你只是想 "省行數",那完全沒必要
11/14 02:56, 8F

11/15 14:32, , 9F
不要說別人看不看得懂好了 你縮很短
11/15 14:32, 9F

11/15 14:32, , 10F
下星期連你都看不懂了
11/15 14:32, 10F

12/03 10:12, , 11F
重點是省了行數,跑起來也沒比較快...
12/03 10:12, 11F
文章代碼(AID): #1O94-sZZ (C_Sharp)
文章代碼(AID): #1O94-sZZ (C_Sharp)