У вас здесь бесконечный цикл:
until distance > 1000 do
speed = Random.rand(5...15)
distance = speed * 1
time = time + 1
end
Этот цикл никогда не закончится, потому что наибольшее значение, которое может получить distance
, равно 15
, поэтому я думаю, что вы хотите добавить к distance
, а не заменить его; сын, попробуйте использовать +=
вместо =
:
until distance > 1000 do
speed = Random.rand(5...15)
distance += speed * 1
time = time + 1
end
То же самое касается всех циклов в каждом случае.
Как я могу сохранить максимальную скорость и вернуть ее в выписке, как я
сделали?
Один из способов сделать это - добавить другую переменную (т.е. max_speed
) и присвоить ей значение speed
всякий раз, когда speed
превышает max_speed
:
time = 0
distance = 0
max_speed = 0
until distance > 1000 do
speed = Random.rand(5...15)
max_speed = speed if speed > max_speed
distance += speed * 1
time = time + 1
end
puts "The maximum speed was #{max_speed} miles per hour"
Другой способ - использовать массив (хотя я предпочитаю первый вариант):
speed = []
until distance > 1000 do
speed << Random.rand(5...15)
distance += speed.last * 1
time = time + 1
end
puts "The maximum speed was #{speed.max} miles per hour"