При таком решении выводится 30. Да, ответ правильный есть. 1) Но почему в результате выполнения строки 16 number не становится 32, ведь здесь (number | 5) > 12 будет false и значит оператору || нужно проверить еще и второе условие (number = number + 2) > 40, где как раз происходит увеличение на 2. 2) Это ведь побитовая операция (number | 5) ? И в результате отсюда мы получим 5, верно?