Я должен проверить, находится ли значение в диапазоне (от 0,9 до 10,19 ... до 100), и вернуть значение в зависимости от диапазона.Цикломатическая сложность моей функции равна 12, и мне нужно снизить ее как минимум до 9. Я действительно в растерянности.
Я хотел использовать ассоциативный массив (использовать как словарь или хэштаблица), но я не думаю, что он работает с диапазонами, и я не хочу, чтобы массив был явно объявлен со 100 записями!
$value = 23;
switch(true) {
case in_array($value, range(0,9)):
return -10;
break;
case in_array($value, range(10,19)):
return -7;
break;
case in_array($value, range(20,29)):
return -5;
break;
case in_array($value, range(30,39)):
return 3;
break;
case in_array($value, range(40,49)):
return 4;
break;
case in_array($value, range(50,59)):
return 5;
break;
case in_array($value, range(60,69)):
return 6;
break;
case in_array($value, range(70,79)):
return 7;
break;
case in_array($value, range(80,89)):
return 8;
break;
case in_array($value, range(90,99)):
return 9;
break;
case in_array($value, range(100,100)):
return 10;
break;
default:
return 0;
break;
}
Может кто-нибудь помочь?Есть ли более простой способ сделать это?ТИА