순환 복잡도(cyclomatic complexity)가 4인 Java … | [7급 국가직 소프트웨어공학] 25년 1회차 기출문제 상세 페이지
1[7급 국가직 소프트웨어공학] 25년 1회차
순환 복잡도(cyclomatic complexity)가 4인 Java 코드는?
1
int max(int x, int y) {
int m = 0;
if(x > y)
m = x;
else
m = y;
return m;
}2
int bonus(int base) {
int x = 0;
if(base > 2000)
x = 3000;
else if(base > 1000)
x = 2000;
else
x = 1000;
return x;
}3
int calculate(int x, int y) {
while(x != y) {
if(x > y)
x -= y;
else
y -= x;
}
return x;
}4
int penalty(int speed) {
int money = 0;
if(speed > 200) {
if(speed < 150)
money = 50;
else {
money = 30;
if(speed <= 100)
money = 0;
}
}
return money;
}해설
순환 복잡도가 4인 코드는 penalty 메소드이다.
순환 복잡도는 결정(조건) 수 + 1로 구할 수 있다. penalty에는 speed>200, speed<150, speed<=100의 if가 3개 있으므로 3 + 1 = 4이다.
- max: if 하나뿐이라 복잡도는 2이다.
- bonus: if와 else if 두 결정이라 복잡도는 3이다.
- calculate: while과 if 두 결정이라 복잡도는 3이다.
오류나 개정된 내용이 보이면 알려주세요