Если вы не возражаете против циклов, содержащих несколько операторов break
, то единственная проблема здесь заключается в том, что C (по понятным причинам) не позволяет вырваться из пустого блока, следовательно, «не цикл», который какой-то ничего не подозревающий будущий сопровождающий может принять за реальный цикл.
Я думаю, следующие соображения:
- если есть только два
break
пункта, что плохого в двух if
утверждениях?
- если имеется более двух точек останова, отступ с операторами
if
может стать неприятным, и это спасает это, но опять же, функция выполняет слишком много? И даже если нет, было бы лучше просто использовать goto
и избежать странностей цикла, который не зацикливается?
Поскольку вы помечали этот язык, не зависящий от языка, я использовал макроизированный язык ассемблера с block
... endblock
, из которого вы могли выйти. Это приводит к достаточно хорошему коду для проверки необходимых условий, таких как:
block
breakif str1 == null
breakif str2 == null
get some combined property of str1 and str2
breakif some other condition that stops us getting on with it
get on with it
endblock
На самом деле, это не было breakif str1 == null
, это было breakifeq.p str1, null
, или что-то в этом роде, но я точно забыл, что.