Когда вы сталкиваетесь с проблемами программирования, «меньше кода» на самом деле не является атрибутом, который вы хотите оптимизировать. Со структурными проблемами гораздо лучше склонить код к тому, чтобы он был простым и читабельным.
Таким образом, для вышеизложенного первый вариант неплох, хотя случай «сквозного» для 2 можно легко пропустить. Лучше просто сделать родительский переключатель на 1 или 2, а затем во втором случае вызвать другую функцию, которая обрабатывает подслучаи (формально 2 и 3), и сделать это управляемым другой (подслучайной) переменной убедитесь, что вы не перегружаете значение исходного значения переменной.
С философской точки зрения все три случая являются частью одного и того же коммутатора, ИЛИ это не так. Если они есть, то к ним следует относиться одинаково (и неотличимо друг от друга). Если это не так, тогда они должны управляться двумя отдельными переменными и обрабатываться в двух отдельных функциях. Попытка сохранить пропускную способность путем их объединения усложняет задачу.
Paul.