Return for 循环并打印 txt 文件

Return the for-loops and print txt file

我正在尝试一个代码,它会在 for 循环方法生成字母时打开一个文件,当这些字母连接在一起形成 'abcd' 这将 return 脚本和打印txt文件。 我尝试了不同的可能性,但目前只能停止脚本并打印所有时间的字母,还打印了文件。却始终无法让大家齐心协力

def words(target)
  filename = ARGV.first

 txt = open(filename)

  ('a'..'z').each do |i|
    ('a'..'z').each do |j|
      ('a'..'z').each do |h|
        ('a'..'z').each do |g|

   together = i+j+h+g
   print together

case together
 when together == target
  return print txt.read

           end
         end
       end
     end
   end
 end

words("abcd")

提前致谢。

这不是 case 的工作方式,您应该改用 if

def words(target)
  filename = ARGV.first

 txt = open(filename)

  ('a'..'z').each do |i|
    ('a'..'z').each do |j|
      ('a'..'z').each do |h|
        ('a'..'z').each do |g|
          together = i+j+h+g
          print together

          if together == target
            return print txt.read
          end
        end
      end
    end
  end
end

words("abcd")

或者,如果您坚持使用 case(出于某种原因):

case together
  when target
    return print txt.read
end
('a'..'z').
  to_a.
  repeated_permutation(4).
  map(&:join).
  detect { |w| w == target }