Посмотрите на след для начальных условий (pickedUpNum
, pickedUp
) = (59
, true
). Мы выполним первое условное выражение и добавим 1
к pickedUpNum
. После добавления 1
, pickedUpNum = 60
, поэтому мы не выполняем внутреннее условное выражение, а pickedUp
остается установленным на true
. С этим значением мы пропускаем второе условное выражение.
Итак, мы находимся (pickedUpNum
, pickedUp
) = (60
, true
). Мы снова выполняем первое условное выражение и добавляем 1
к pickedUpNum
. Теперь pickedUpNum = 61
, поэтому мы выполняем внутреннее условное выражение и устанавливаем pickedUp = false
. С этим новым значением будет выполнено второе условие.
(извините, если я педантичен, иногда лучше быть явным :))
edit: спасибо, Дэвид, за то, что поймал мою логическую опечатку