Sonar Metrics の複雑さのページから、次のメソッドの複雑さは 5 です。
public void process(Car myCar){ <- +1
if(myCar.isNotMine()){ <- +1
return; <- +1
}
car.paint("red");
car.changeWheel();
while(car.hasGazol() && car.getDriver().isNotStressed()){ <- +2
car.drive();
}
return;
}
これは、ツールが複雑さを計算する方法です。
複雑さを増すキーワード: if、for、while、case、catch、throw、return (メソッドの最後のステートメントではない)、&&、||、?
ifブロックとwhileブロックがメソッドの複雑さを増すのはなぜですか? メソッドの複雑さのこのメトリック計算の背後にある直感は何ですか?