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