Что выведет этот код?


for i in range(3):
    for j in range(3):
        if i + j > 3:
            break
        print(i, j)

0 0

0 1

0 2

1 0

1 1

1 2

2 0

2 1


Задача:


for i in range(3):
    for j in range(3):
        if i + j > 3:
            break
        print(i, j)
  

Объяснение:

Этот код представляет собой два вложенных цикла for. Внешний цикл итерируется по значениям i от 0 до 2 (включительно). Внутренний цикл итерируется по значениям j от 0 до 2 (включительно).

Внутри внутреннего цикла находится условный оператор if i + j > 3:. Если сумма i и j больше 3, то выполняется оператор break. Оператор break прерывает выполнение только внутреннего цикла. Внешний цикл продолжает свою работу.

Если условие i + j > 3 не выполняется, то выполняется команда print(i, j), которая выводит текущие значения i и j.

Вывод:

0 0
0 1
0 2
1 0
1 1
1 2
2 0
2 1
  

Почему так?

  • i = 0:
    • j = 0: i + j = 0 (не больше 3), печатается (0, 0)
    • j = 1: i + j = 1 (не больше 3), печатается (0, 1)
    • j = 2: i + j = 2 (не больше 3), печатается (0, 2)
  • i = 1:
    • j = 0: i + j = 1 (не больше 3), печатается (1, 0)
    • j = 1: i + j = 2 (не больше 3), печатается (1, 1)
    • j = 2: i + j = 3 (не больше 3), печатается (1, 2)
  • i = 2:
    • j = 0: i + j = 2 (не больше 3), печатается (2, 0)
    • j = 1: i + j = 3 (не больше 3), печатается (2, 1)
    • j = 2: i + j = 4 (больше 3), цикл прерывается (break)
0