Правильность оформления условия в if

Всем привет, если в конструкции с условием это самое условие очень большое и не помещается на экране в одной строке, будет ли правильным это условие разбить на несколько строк? Пример будет ниже

if (view->isChecked(this->x() + 100, this->y() + 100) &&
        view->getFigureTeamByCoords(this->x() + 100, this->y() + 100) == "BLACK" &&
        !view->isChecked(this->x() + 200, this->y() + 200)) {
        return true;
    } else if (view->isChecked(this->x() - 100, this->y() + 100) &&
               view->getFigureTeamByCoords(this->x() - 100, this->y() + 100) == "BLACK" &&
               !view->isChecked(this->x() - 200, this->y() + 200)) {
        return true;
    } else if (view->isChecked(this->x() + 100, this->y() + 100) &&
               view->getFigureTeamByCoords(this->x() + 100, this->y() + 100) == "BLACK" &&
               !view->isChecked(this->x() + 200, this->y() + 200)) {
        return true;
    } else if (view->isChecked(this->x() - 100, this->y() + 100) &&
               view->getFigureTeamByCoords(this->x() - 100, this->y() + 100) == "BLACK" &&
               !view->isChecked(this->x() - 200, this->y() + 200)) {
        return true;
    } else {
        return false;
    }

сразу извиняюсь если что-то говорю не так


Ответы (1 шт):

Автор решения: Harry

Если все же надо третье +100/-100, а четвертое -100/-100, то можно:

for(int i = -1; i < 2; i+=2) for(int j = -1; j < 2; j+=2)
{
    if (!view->isChecked(this->x() + 100*i, this->y() + 100*j)) continue;
    if (view->isChecked(this->x() + 200*i, this->y() + 200*j)) continue;
    if (view->getFigureTeamByCoords(this->x() + 100*i, this->y() + 100*j) == "BLACK")
        return true;
}
return false;

Всяко короче...

→ Ссылка