#ruby #loops
Вопрос:
Я знаю, что я должен быть отсутствует что-то на arr2.each_index
но я не могу придумать, что еще я могу добавить.. у меня плавится мозг лол коды ниже еще должна быть выполнена, только если там нет «Нум» в arr2 больше, то кол-во, Но теперь они выполняются всякий раз, когда есть на «чис» в arr2 больше, то кол-во. Я надеюсь, что этот вопрос имеет смысл.
arr = [{"num":1,"head":5},{"num":3,"head":1},{"num":4,"head":1},{"num":5,"head":7}]
arr2 = [{"init1":[{"num":2,"head":1}]},{"init2":[{"num":35,"head":2}]},{"init3":[{"num":98,"head":1}]},{"init4":[{"num":51,"head":1},{"num":77,"head":5}]}]
arr3 = []
puts "Card you want to place outside? "
num = gets.chomp.to_i
def add_card_to_init(arr, arr2, arr3, num)
arr.each_with_index do |card, index|
if card[:num] == num
catch :skip do
arr2.each_index do |index|
x = arr2[index].values[0]
if num > x[x.length-1][:num]
#code
puts "num > init"
else
# code only runs when no num > x[x.length-1][:num]
puts "num < init"
throw :skip
end
end
end
end
end
end
add_card_to_init(arr, arr2, arr3, num)
Ожидайте выхода, когда num = 3
num > init
Но то, что у меня есть, это
num > init
num < init
Заранее спасибо!
Комментарии:
1. Прочитайте эту статью для получения советов по отладке вашей программы.
2. Я не понимаю вашего вопроса. Всегда начинайте вопрос с изложения того, что вы пытаетесь сделать, без ссылки на ваш код. Часто бывает полезен пример, показывающий входные данные и желаемый результат (возвращаемое значение).
3. @Code-Ученик, большое тебе спасибо за статью! Я пойду и почитаю 🙂
4. @CarySwoveland, спасибо за ваши советы! У меня есть проблемы с формулировкой вопросов словами, так как у меня все еще мало опыта в этом вопросе. Но я очень надеюсь, что в будущем мне станет лучше..
Ответ №1:
самый простой способ-установить флаг «меньше» true
перед входом в each_index
цикл и установить его false
внутри цикла, если init >= num
. А затем запустите свой код вне цикла на основе флага. Это не элегантно, но быстро и грязно. При желании вы можете оставить цикл на первом false
событии.
Комментарии:
1. Спасибо, Эрик! Я переписал коды и нашел способ сделать это сейчас 🙂