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 }
我正在尝试一个代码,它会在 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 }