有人能告诉我我的代码出错了吗?我正在尝试创建一个一次性填充密码,它需要一个字符串对其进行加密,然后将其重新输出。但是当我把一根绳子放进去时,有人可以纠正我的工作,谢谢。
我的工作:
h = {}
v = 0
('A'..'Z').each do |c|
v+=1
h[c] = v
end
puts "Provide Input:"
input = gets
input.downcase!
if input.include?("a")
n = h["A"] + rand(26)
puts h.index(n)
if input.include?("b")
n = h["B"] + rand(26)
puts h.index(n)
if input.include?("c")
n = h["C"] + rand(26)
puts h.index(n)
etc, etc... (All the way to the end of the alphabet)
end
end
end
答案 0 :(得分:0)
我没有看到任何'结尾'跟踪每个'if'块。如果是这种情况,那就意味着你的ifs是嵌套的,而你只是在满足前一个条件时检查下一个条件(如果没有'a'则不会做任何事情,如果有'a'则不会做太多'但没有'b'等)。此外,只要你的代码块几乎完全相同且只是少量变化,通常就会表明有一种更简单的方法来做你想做的事情。