Основываясь на ответе Тома Лохорста, вот вариант выполнения break
или continue
в зависимости от установленной вами переменной isExit
. Для этого в конце внешнего (не поддельного) цикла вы добавляете
if isExit then
exit repeat
end if
Таким образом, если isExit
истинно, вы просто выходите из внешнего цикла, являясь эффективным break
.
Оригинальный вопрос/ответ:
Для исходной проблемы с вопросом это будет выглядеть так, ниже будет обобщенная.
set aList to {"1", "2", "3", "4", "5"}
repeat with anItem in aList -- actual loop
set isExit to false
repeat 1 times -- fake loop
-- do your stuff
set value to item 1 of anItem
if value = "3" then
-- simulated `continue`
set isExit to false
exit repeat
end if
if value = "69" then
-- simulated `break`
set isExit to true
exit repeat
end if
display dialog value
end repeat
if isExit then
exit repeat
end if
end repeat
Обобщенный
Итак, чтобы разбить это на более простой пример:
Допустим, вы хотели бы иметь continue
или break
в этих двух if
. Вы можете поместить весь свой код между ними, я включил только код, относящийся к различным стратегиям выхода.
Если вы хотите написать что-то вроде этого:
repeat <condition_repeat>
if <condition_continue> then
continue
end if
if <condition_break> then
break
end if
end repeat
Это можно было бы записать как
repeat <condition_repeat>
set isExit to false -- added
repeat 1 times -- added
if <condition_continue> then
set isExit to false -- changed
exit repeat -- changed
end if
if <condition_break> then
set isExit to true -- changed
exit repeat -- changed
end if
end repeat -- added
if isExit then -- added
exit repeat -- added
end if -- added
end repeat
person
luckydonald
schedule
16.02.2021