我怎樣才能減少這種功能的圈複雜度在Java?:如何降低java中的圈複雜度?
public void execute() {
if (dx == 1 && dy == 0) { this.moveRight();}
if (dx == -1 && dy == 0) { this.moveLeft();}
if (dx == 0 && dy == -1) { this.moveUp();}
if (dx == 0 && dy == 1) { this.moveDown();}
if (dx == 1 && dy == -1) { this.moveUpRight();}
if (dx == 1 && dy == 1) { this.moveRightDown();}
if (dx == -1 && dy == -1) { this.moveLeftUp();}
if (dx == -1 && dy == 1) { this.moveDownLeft();}
}
由於有8種方法,你需要有8個條件,這種排序是有道理的。順便說一句,你可能想使用'if,else if'語句,因爲程序是每當所有8個條件都被執行時 – nafas
'moveUpRight()'與moveUp()'+ moveRight()'相同嗎? – Berger
我們不知道這些方法是做什麼的。也許'moveUpRight'只是調用'moveUp(); moveRight();',也許不是。沒有這一點,我看不出一種降低複雜性的方法。如果你問這個問題是因爲像聲納這樣的事情引發了一個警告,有時候可以忽略它。 – jhamon