Я бы эту сложную конструкцию переделал на if