Я недавно кодировал небольшую Java-программу (как дизайн для программы 8086 Assembler) и оказался в интересной позиции - мне нужно было выйти из цикла while из внутреннего оператора switch, что-то вроде этого (очевидно, псевдокод):
:MyLoop
While(foo)
switch (bar)
case '1': print '1'; break
case '0': print '0'; break
case ';': end while loop;
Казалось, что это идеальное место для оператора goto, потому что один "break" мог бы только выйти из оператора switch (особенно учитывая, что я проектировал для сборки), но Java имеетнет gotos!
Вместо этого я обнаружил, что в Java есть нечто, называемое многоуровневым разрывом, поэтому при использовании «break MyLoop» программа вырвалась бы из обоих вариантов переключения и цикла while.'
Мой вопрос - является ли это подходящим использованием многоуровневого перерыва?Если по какой-то причине я хотел сохранить оператор switch (вместо, скажем, вложенного оператора if ifs), есть ли альтернативный способ имитировать многоуровневый разрыв с помощью «break» или «continue» в одиночку?