100门帮助使用Ruby

100门帮助使用Ruby,ruby,Ruby,我刚开始学习Ruby,尝试了100门问题,但似乎无法让代码正常工作。有人能告诉我我做错了什么吗?对于任何需要进修或以前从未见过的人来说,这是一个问题: def door_更改(door_num) 如果door_num==真 门数量=假 其他的 门数=真 终止 终止 def通道门(阵列、圆形) i=第1轮 而我的问题是这个代码 while i <= array.length array[i]=door_change(array[i]) i=i+round end 您的门更

我刚开始学习Ruby,尝试了100门问题,但似乎无法让代码正常工作。有人能告诉我我做错了什么吗?对于任何需要进修或以前从未见过的人来说,这是一个问题:

def door_更改(door_num)
如果door_num==真
门数量=假
其他的
门数=真
终止
终止
def通道门(阵列、圆形)
i=第1轮

而我的问题是这个代码

while i <= array.length
    array[i]=door_change(array[i])

    i=i+round
end

您的门更改不会修改数组,请尝试
array[i]=door\u change(array[i])
为什么要使用单独的函数来交换布尔值?试试
array[i]=!数组[i]
。此外,在每次传递后,还需要使用返回值
pass\u doors
覆盖
doors
。@Rge28请考虑数组最后一个元素的索引号是多少(第一个是0)。接下来请记住,在Ruby中,当您在数组结束后将元素分配给索引时,数组将展开。提示:将
放入您的代码中以查看发生了什么或使用调试器。这很有效。谢谢大家!def door\u change(door\u num)如果door\u num==true door\u num=false否则door\u num=true end end def pass\u doors(array,round)i=round-1而iwhile i <= array.length
    array[i]=door_change(array[i])

    i=i+round
end
while i < array.length
    array[i]=door_change(array[i])

    i=i+round
end