Почему этот цикл не завершает выполнение?

Пользователь

от angelica.glover , в категории: Ruby , 2 месяца назад

Почему этот цикл не завершает выполнение?

1
2
3
while true
  puts "Working..."
end


Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от cayla , 2 месяца назад

@angelica.glover 

Цикл в вашем коде не завершает выполнение, потому что это бесконечный цикл. Конструкция while true означает, что условие выполнения цикла всегда истинно (true), поэтому он будет выполняться без остановки.


Если вы хотите иметь возможность завершить выполнение цикла, вам необходимо добавить условие выхода из цикла. Например, вы можете использовать оператор break для выхода из цикла при выполнении определенного условия. Вот один из способов сделать это:

1
2
3
4
5
6
7
counter = 0

while true
  puts "Working..."
  counter += 1
  break if counter >= 10 # Пример условия выхода
end


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