Найти - Пользователи
Полная версия: Прерывание двойного цикла.
Начало » Python для новичков » Прерывание двойного цикла.
1
InfinitiV2
Добрый день форумчане. Хочу решить одну маленькую проблему. В коде имеется цикл for вложенный в другой цикл for. Необходимо при определенном условии остановить цикл верхнего уровня. Брать булеву переменную и использовать ее как тригер нельзя. Хочу замутить что то похожее на JavaScript - там можно использовать оператор break и указать ему метку определяющую какой именно цикл прервать прямо сейчас. Вот код на питоне 2.7.3:
for i in Range(5):
for j in Range(10):
if i == 2:
break # тут будет прерван сложенный цикл, но не цикл верхнего уровня, а надо, чтобы был остановлен цикл _ # верхнего уровня, т.е. цикл с переменной i.

Спасибо змеи !!
PanovSergey
нет такого если хотите можно так
for i in Range(5):
    for j in Range(10):
        if i == 2:
            done = True
            break
    if done:
        break  
bw
Дурацкий конечно способ:
for i in range(5):
    for j in range(10):
        print i, j
        if i == 2:
            break
    else:
        continue
    break

Или так:
import itertools as I
for i, j in I.product(xrange(5), xrange(10)):
    print i, j
    if i == 2:
        break

..bw
Master_Sergius
Плохое проектирование. Тогда уж лучше запихнуть это в функцию и использовать return. Но, вообще, что-то не понимаю практического применения этих циклов.
dimy44
Чем же плохое? Такие конструкции имеют место быть, и, насчет функции- из цикла наоборот надо выносить все затратные элементы, к коим в частности функция относится. Первый пример в посте #3 прост и понятен для новичка, что там дурацкого?
Shaman
Так же можно генерировать специальное исключение.
Isem
Shaman
Так же можно генерировать специальное исключение.
назовем это ГСИ
Shaman
Isem
назовем это ГСИ
В печь только не ставьте!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB