Контрольные задания > Дана последовательность операторов:
a = 1
b = 1
while True:
a += 1
b *= 2
if b > 8: break
s = a + b
Сколько раз будет выполнено тело цикла и какими будут значения переменных a, b, s после выполнения этой последовательности операторов?
Вопрос:
Дана последовательность операторов:
a = 1
b = 1
while True:
a += 1
b *= 2
if b > 8: break
s = a + b
Сколько раз будет выполнено тело цикла и какими будут значения переменных a, b, s после выполнения этой последовательности операторов?
Рассмотрим выполнение данного кода по шагам:
1. Инициализация: `a = 1`, `b = 1`
2. Вход в цикл `while True`:
* Итерация 1:
* `a += 1` (a становится 2)
* `b *= 2` (b становится 2)
* `if b > 8: break` (2 > 8 - ложно, продолжаем цикл)
* `s = a + b` (s становится 2 + 2 = 4)
* Итерация 2:
* `a += 1` (a становится 3)
* `b *= 2` (b становится 4)
* `if b > 8: break` (4 > 8 - ложно, продолжаем цикл)
* `s = a + b` (s становится 3 + 4 = 7)
* Итерация 3:
* `a += 1` (a становится 4)
* `b *= 2` (b становится 8)
* `if b > 8: break` (8 > 8 - ложно, продолжаем цикл)
* `s = a + b` (s становится 4 + 8 = 12)
* Итерация 4:
* `a += 1` (a становится 5)
* `b *= 2` (b становится 16)
* `if b > 8: break` (16 > 8 - истинно, выходим из цикла)
* `s = a + b` (не выполняется, т.к. произошел выход из цикла)
Тело цикла будет выполнено 4 раза.
Значения переменных после выполнения кода:
* `a = 5`
* `b = 16`
* `s = 12`
Ответ: Тело цикла выполнится 4 раза. Значения переменных: a = 5, b = 16, s = 12.