|
есть цикл. в нем обрабатывается некий массив данных. Допустим я что-то ищу в этиом массиве. Если нашел, то выходу из цикла и иду дальше. Если не нашел, то нужно произвести какие-то действия и тоже идти дальше.
Вопрос: как это сделать без goto, но чтобы программа была минимально-оптимальной и максимально понятной.
Ответ: на Си - нет прямого решения. На Python - есть.
Код на питоне:
for i in array:
if i == 0: break # какая-то проверка данных
# do something
else:
print '0 not found'
# do something
# дальше продолжить в любом случае отсюда
Объяснение программы (упрощенно):
символ # означает комментарий до конца строки
отступами обозначается тело каждого элемента (мысленно добавьте кривые скобки как в си)
1 строка - цикл, который обходит все элементы массива array, i - это итератор, на каждом проходе он равен текущему элементу массива
2 строка - некая проверка текущих данных, если условие выполняется - выход из цикла, туда где комметарий "# дальше продолжить отсюда"
4 строка - альтернативная ветвь цикла(!) - будет выполнена если цикл естественным образом закончился. Если был выход из цикла через break, то эта ветвь пропускается
Ну?
E-mail: info@telesys.ru