-1
Я провел нелепое время, пытаясь понять, почему это висит. Я предполагаю, что это что-то делать с тем, как я отформатировал ||
для if
заявление:Почему мой скрипт висит?
rods = {
:rod1 => [3,2,1],
:rod2 => [],
:rod3 => []
}
init_rod = gets.chomp.to_sym
if ((init_rod != :rod1 || init_rod != :rod2) || init_rod != :rod3)
print "Type in \"rod1\", \"rod2\", or \"rod3\": "
elsif rods[init_rod].empty?
print "Rod has no discs. Select another rod other than #{init_rod}: "
else
disc = rods[init_rod].pop
end
Возможно, вам нужна цепочка '&&', а не цепочка '||', потому что, если она не одна или нет, то другая, а не другая, поэтому она должна быть истинна, потому что, не будучи первой, не должны удовлетворять второй или третьей. –
'if ((init_rod! =: Rod1 && init_rod! =: Rod2) && init_rod! =: Rod3)' –
Или более идиоматический Ruby будет использовать массив и 'include?', Как в 'if! [: Rod1 ,: rod2,: rod3] .INCLUDE? init_rod' –