От Sonar Metrics complexity page следующий метод имеет сложность 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;
}
Это, как инструмент расчета сложности:
Ключевые слова увеличивающиеся сложность: если, в то время как,, случай, улов, throw, return (это не последний оператор метода), & &, ||,?
Почему случае заявления, если блоки и в то время как блоки увеличивают сложность метода? Какова интуиция за этим метрическим вычислением сложности методов?
Потому что они делают сравнения. 'default'' finally' не потому, что они не делают сравнения, потому что сравнения выполняются раньше. – shuangwhywhy