Re: [承上面]67個if的美學果然不適合小弟...

看板java作者 (swpoker)時間13年前 (2012/10/17 09:18), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/8 (看更多)
我看到67個if想到可以參考重構跟敏捷開發的運用 因為物件導向的缺點就是容易複雜跟不知入手 重構可以解決上述的問題 我自己的例子是在寫利用郵局提供的原則(可在郵局網站下載) 撰寫判別5碼的郵遞區號 寫法的步驟是先寫類似腳本的寫法先寫幾個原則 然後利用重構搭配樣式開始改變程式架構 之後才開始寫其他的原則 其實上述跟這次問題沒什麼關係 這次的關鍵在於演算法 但可以透過這種的訓練 讓自己撰寫程式的功力變的更好更快 我自己有個心得就是 程式要寫三次才穩定 穩定的程式碼也代表系統的穩定 但穩定並不是不可改變 而是在需求的不確定性之下,發揮最大的彈性 提供給你參考 ※ 引述《JazzChen (PhoenixJazz)》之銘言: : 小弟在前一篇發表了67個if : 一時之間成了版標...太令小弟震驚了! : 不過小弟不是個"勤能補拙"的人,無法好好地寫完67個if : 最後綜合了各家說法以及小弟個人(翻書)的見解, : 在此放上小弟腦力激盪後的寫法 : 請各位大大賜教!希望能夠再增進JAVA的功力! : 默默附上: : //random number : int[] D = new int[4]; : D[0] = (int) (Math.random()*10); : do{ : D[1]=(int) (Math.random()*10); : } while(D[0] == D[1]); : do{ : D[2]=(int) (Math.random()*10); : } while(D[0] == D[2] || D[1] == D[2]); : do{ : D[3]=(int) (Math.random()*10); : } while(D[0] == D[3] || D[1] == D[3] || D[2] == D[3]); : //判斷A & B : int[] R = new int[4]; : int a = 0; : int b = 0; : int g = sc.nextInt();//假設前面已宣告過sc了 : for(int i=3; i>=0; i--) { : R[i] = g%10; : g = g/10; : } //把輸入的值設為陣列 : for(int i=0; i<4; i++) //判斷A : if (D[i] == R[i]) a++; : for(int i=0; i<4; i++) //判斷B : for(int j=0; j<4; j++) : if (i!=j && D[i] == R[j]) b++; : //輸出輸入便不寫了,偷懶一下 : 最後,想問一下有沒有更快可以設定random的方法... : 雖然說只有四個數字,但是版主大大說得好,能偷懶就偷懶XD : 想詢問大大是否有更好的方法 : 感激不盡! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.29.28.131
文章代碼(AID): #1GVWTBui (java)
討論串 (同標題文章)
文章代碼(AID): #1GVWTBui (java)