Почему не работает такая конструкция?
Тернарный оператор возвращает значение. Это не то же самое, что if .. elseусловие ? выражение_1 : выражение_2 – эта конструкция принимает то или иное значение: выражение_1 или выражение_2.
Нельзя ставить в тернарный оператор continue или return потому, что это не выражения, принимающие какие-то значения, а управляющие структуры.
Если бы вы выбирали, что вернуть, можно было бы написать return isItTrue ? A : B;
В вашем же случае выбора между return и continue годится только старый добрый if .. else
Тернарный оператор сам по себе делает return, так что повторной вызов return генерит ошибку