我正在做一个像这样工作的程序的项目:
- 用户输入他们想要的最小和最大难度。
- 程序读取包含问题和答案的文件,并根据难点打印问题。
- 用户回答问题。
- 将用户的答案与实际答案进行比较。
该文件如下所示:
D 1
Q What color are the clouds?
A white
D 2
Q What is 3 + 4?
A 7
假设我只想抓取D 1
问题和答案。我必须构建可以读取D 1
的正则表达式和接下来的两行(Q
和A
)。到目前为止,这是我想出的:
if(File.exists?("quiz.txt"))
myFile = File.open("quiz.txt")
array = Array.new
i = 0
q = nil
d = nil
a = nil
answer_array = Array.new
myFile.each{|line|
if(line =~ (/^D #{minimum}/ =~ line || /^D #{maximum}/ =~ line))
d = line
d.slice!(0..1)
if(/^Q/ =~ line)
i= i+1
q = line
q.slice!(0..1)
end
if(/^A/ =~ line)
a = line
a.slice!(0..1)
end
end
}
我所拥有的不起作用。if
检查 like 开头是否以 a 开头的第一个语句,D
其他两个语句必须始终为 trueif
才能运行,但它们还必须读取下一行,该行必须在D
if之外陈述。我怎么能做到这一点?