Hi,

Still learning from the Pickaxe book, and I've got a question about this code:

class Array
  def find
     for i in 0..size
       value = self[i]
       puts self[i]
       return value if yield(value)
     end
     return nil
   end
 end

[1,3,5,7,9].find {|v| v*v > 30 }

irb(main):369:0> [1,3,5,7,9].find {|v| v*v > 30 }
=> 7


how come it prints only 7, and not also 9?
The loop is not stopping as far as I can see, and 9 times 9 is also
bigger then 30.

Krekna