Re: [問題] 想把 > 和 < 在迴圈中動態給定
※ 引述《BBSealion (海獅)》之銘言:
: 有點不清楚怎麼敘述
: 就是我有一個判斷是要跑
: if(a>1)
: else if(a>2)
: ...
: else if(a>10)
: 另一個就是反過來
: if(a<1)
: else if(a<2)
: ...
: else if(a<10)
: 因為兩個判斷是裡面做的事情很像
: 我想寫成一個i=0~1跑兩次的迴圈解決
: 但要怎樣控制那個判斷式的 > 和 < 記號呢?
: 是可以另外寫一個function丟參數i進去實作 > 和 <
: 但為了一個大於小於多開一個function感覺還是不太漂亮
: 想知道有沒有更精簡的寫法呢
為了大於和小於分別開不同的functions才漂亮,反倒是拿一個參數決定階層式大於
或階層式小於才是醜惡. 因為,你怎麼能說 if (a>10) ... else if (a > 9) ...
到 else if (a > 1) ... 的反向是 if (a<1) ... else if (a < 2) ... 到 else
if (a < 10) ? 這種關連,你要說是反函數也不是,要說是語意相近,又差很多.
主要還是看功能依賴性質,還有上下文. 看大於的部份,由這種程式結構衍生出來
的最小功能,大概就是一列數字區間,每一項分別對應獨立的值. 也可以寫成這樣:
Storage s[10] = ...
Storage result;
......
for (i=10; i<=1; i--) {
if (a > i) {
result = s[i-1];
......
break;
}
}
如果Storage是一個值, result就拿到一個值; 如果Storage是個物件, 對result
的操作就代表對應於不同的程式段落. 而後者, 如果Ruby的duck typing成立, 就
很棒, 要不然假如是做類似的操作像 result.do(i) 這種廢話操作,就白忙一場.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.167.46.76
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 4 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章