精華區beta C_and_CPP 關於我們 聯絡資訊
※ 引述《ccu5566 (中正56)》之銘言: : for(i=0;i<MAX;) : if( a[i++] == res1 || : a[i++] == res2 || : a[i++] == res3 || : a[i++] == res4 ) : { : ; : }//類似這樣用是很好用啦.. 下面這兩個簡單易懂沒話說,可是上面那個沒註解的話真的不好懂 再加上用到 || 如果先前有成立後面就不會執行到的特性 如果不知道這程式就不用看了,你可能覺得很好用很理所當然, 但是或許看的人不一定這樣認為,很可能光一個||的問題就讓他困惑和找資料很久 所以個人還是偏好簡單的寫法 char notmatchTable[] = {1, 2, 3, 4}; for(i=0;i<MAX; ++i) { if(a[i] != notmatchTable[notmatch]) { ++notmatch; if(notmatch >= 4) { notmatch = 0; } } else { notmatch = 0; printf("match at %d\n", i + 1); } } 這算是寫複雜了,太早醒來現在頭很痛= = 還可以再更精簡、更易懂、更有效率很多 我個人覺得寫出簡單易懂又有效率的程式碼才是真正困難的 像K&R就真的做到這點 : K&R 2e P.105 : void strcpy(..) : { : while((*s = *t) != '\0'){ : s++; : t++; : } : } : void strcpy(..) : { : while((*s++ = *t++) != '\0' ) : ; : } -- VICTOR工作室 http://www.kinmen.info/vic/ 程式設計教學 http://victorlin.serveftp.org/programming/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.116.65.223
ccu5566:所以說特性基本上都要會 哪天看到別人的程式才不會一改 02/04 00:30
ccu5566:就出問題,像我也是看別人程式才特別注意這個特性 02/04 00:32
ccu5566:至於喜歡哪種寫法 是個人偏好囉 02/04 00:32
StubbornLin:你確定別人改你那樣的程式不會出問題? 02/04 11:22
StubbornLin:的確是個人偏好沒錯 但是不良的偏好和別人寫的話 02/04 11:23
StubbornLin:痛苦的是別人不是你 = = 02/04 11:24