[問題] 設計上的一些問題

看板C_and_CPP作者 (卯)時間15年前 (2010/09/23 16:57), 編輯推噓2(2013)
留言15則, 6人參與, 最新討論串1/1
請教各位先進一個關於設計上的問題 目前我有一個架構大概如下: while (1) { if (condition) { //dosomething } else { break; } } 那這個架構裡面的condition是一個具有遞增(or 遞減)特質的判斷 e.g. int i = 1; while (1) { if (i++ < 200) { //dosomething } else { break; } } 如上範例,我的i是一個具有遞增性質的變數 藉此範例陳述一下我的需求 目前我if中要判斷的,是目前i的狀態,並在此if中讓他遞增到下一個狀態 也就是說,我不希望是以下個格式: while (1) { if (i < 200) { } else { break; } i++; } 接著是我實際上遇到的問題 我遇到的condition是一個link list,而非scalar variable 而我想達成我前面所描述的寫法 就是能在if中能夠判斷目前node,並且再指向下一個node 當然這個部份我也希望不要用到額外的變數,因為我前面的scalar variable也沒有用到 所以不知道各位先進有沒有好的解決方案? 謝謝 -- wq※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.105.91 ※ 編輯: godman362 來自: 140.123.105.91 (09/23 16:57)

09/23 17:02, , 1F
個人覺得 i++ 這種東西其實隱含了另一個額外變數
09/23 17:02, 1F

09/23 17:02, , 2F
所以要達成類似效果的話還是乖乖用個額外變數吧...
09/23 17:02, 2F

09/23 17:03, , 3F
不然即使你另外寫個 function 做類似的事還是需要額外變數
09/23 17:03, 3F

09/23 17:03, , 4F
自己寫一個迭代器, 還有其實這樣寫並沒有比較帥, 用多
09/23 17:03, 4F

09/23 17:04, , 5F
反而更難懂
09/23 17:04, 5F

09/23 17:08, , 6F
所以至少還是要用額外的變數處理嗎...
09/23 17:08, 6F

09/23 17:08, , 7F
這樣我明白了,謝謝兩位指點
09/23 17:08, 7F

09/23 17:09, , 8F
其實這沒什麼好節省的吧? XD
09/23 17:09, 8F

09/23 17:11, , 9F
其實不是節省的問題,是我想要做的比較general一點
09/23 17:11, 9F

09/23 17:12, , 10F
如果是要使用額外的變數處理的話,那我i++那邊也會改掉
09/23 17:12, 10F

09/23 17:20, , 11F
幫link list寫一個function是「傳回現在的值,然後往下
09/23 17:20, 11F

09/23 17:21, , 12F
移一個node」啊..或是你要直接overload operator++也行
09/23 17:21, 12F

09/23 17:22, , 13F
當然你的link list就要多內建一個變數是你現在處理到哪
09/23 17:22, 13F

09/23 17:49, , 14F

09/24 16:01, , 15F
其實書上都說不要在if內做額外動作..因為不易閱讀
09/24 16:01, 15F
文章代碼(AID): #1CcnPb3z (C_and_CPP)