Продолжить внешний цикл при выполнении условия во внутреннем цикле
Вот код:
s=int(input())
matrix=[input().split() for i in range(s)]
print(matrix)
for i in range(s):
for j in range(s):
if matrix[i][j]==matrix[i][i]:
continue
Вопрос: как применить continue
к внешнему циклу при выполнении условия?
Ответы (2 шт):
for i in range(s):
for j in range(s):
if matrix[i][j]==matrix[i][i]:
break
else:
# мы окажемся здесь, если break не случился
continue
# мы окажемся здесь, если break случился
continue
Хочется отметить, что вариант:
for i in range(s):
for j in range(s):
if matrix[i][j]==matrix[i][i]:
break
else:
continue
не сработает, так как при выходе из цикла через break
блок else
не выполняется. К сожалению, не могу ответить в комментарии, поэтому отмечаю тут.
Далее, вопрос выглядит не до конца раскрытым, ведь чтобы имело смысл делать continue
во внешнем цикле for
, нужно, чтобы там был какой-то код, типа:
for i in range(s):
for j in range(s):
if matrix[i][j]==matrix[i][i]:
break
some_method()
Далее - можно даже использовать переменную j
после внешнего цикла, так как она сохраняется, единственное - она может быть не проинициализирована, если вдруг цикл по j
будет пустым:
for i in range(3):
for j in range(3):
if matrix[i][j]==matrix[i][i]:
break
if matrix[i][j] == matrix[i][i]:
continue
some_method()
Последнее, что хотел отметить - в данном коде всегда будет выполняться условие matrix[i][j]==matrix[i][i]
в тривиальном случае - когда j=i
, следовательно, каждый цикл по j
он будет выходить во внешний, и каждый раз будет выполняться внешнее условие, и вызов some_method()
никогда не сработает. Если это учебный код, то кажется, что он не слишком наглядный.