Почему оператор break в коде не работает (python) - PullRequest
0 голосов
/ 26 января 2019

это код для вывода наименьшего положительного целого числа, присутствующего в списке.оператор break не работает, и цикл работает бесконечно.

  list = []

n=1

print("enter array")
for i in range (5) :
    a=(int(input()))
    list.append(a)

while n<4 :
    for i in range (5) :
        if(list[i]== n):
            n=n+1
            continue
        else:
            print("the number should be" , n)
            break

1 Ответ

0 голосов
/ 26 января 2019

оператор break относится к самому внутреннему уровню цикла

приведенный ниже код представляет собой бесконечный цикл:

while True:
    for i in range(10):
        if i == 5:
            break  # breaks the for, start a new iteration of the while loop

Чтобы разорвать цикл while, вы можете рассмотреть возможность использования какого-либо типа флагавот так

while True:
    broken = False
    for i in xrange(10):
         if i == 5:
             broken = True
             # break the for loop
             break
    if broken:
        # break the while loop
        break

здесь также может быть полезно выражение for-else:

while True:
    for ...:
         if ...:
             # break the for loop
             break  # refers to the for statement
    else:
        # the breaking condition was never met during the for loop
        continue # refers to the while statement

    # this part only execute if the for loop was broken
    break # refers to the while statement
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...