新手问题 读 programming ruby 第二版,7.6 循环,遇到一个看不懂的问题

codemonkey · 2015年04月22日 · 最后由 codemonkey 回复于 2015年04月23日 · 1745 次阅读

请教请教一个问题 当计算到第二行的时候 f.lineno 是 2 line 是 second ((f.lineno == 1) || line.chomp =~ /eig/) 为假 ((f.lineno== 3) || line.chomp =~ /nin/) 为假 但是 lineno 是在 1..3 范围中所以打印了 second?

这个 ((f.lineno == 1) || line.chomp =~ /eig/)..((f.lineno== 3) || line.chomp =~ /nin/) 每次循环是怎么计算的。

我理解是 先计算第一个 ((f.lineno == 1) || line.chomp =~ /eig/) 这个结果是 true.那 if 判断就是真, 但是第二行 f.lineno 是 2 line 是 second ((f.lineno == 1) || line.chomp =~ /eig/)和((f.lineno== 3) || line.chomp =~ /nin/) 都是假啊。为什么会打印 second。

是不是前面我说的,但是 lineno 是在 1..3 范围中所以打印了 second?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号