Ruby:Loops
From Blognone
ในภาษา Ruby มี loop ให้ใช้สองแบบครับ
แบบแรกคือ loop มาตฐาน while และ for
i = 0 while i < 4 puts("i = #{i}") i = i + 1 end
เมื่อเป็น "จริง" ถึงทำ ผลลัพธ์ที่ได้คือ
i = 0 i = 1 i = 2 i = 3
สำหรับ while เราสามารถเปลียนคำว่า while เป็นคำว่า until ได้ในกรณีที่ต้องการให้เป็น "เท็จ" ถึงทำ
i = 0 until i >= 4 puts("i = #{i}") i = i + 1 end
ผลลัพธ์ที่ได้เหมือนกันครับ
สำหรับ loop for เราไม่ค่อยได้ใช้เท่าไหร จะข้ามไปครับ :p
แบบที่สองคือการ loop โดยดึงค่ามาจาก Array โดยใช้คำสั่ง each
array = ['first', 'second', 'third'] array.each do |x| puts(x) end
ผลลัพธ์ที่ได้คือ
first second third
การใช้ each จะคล้ายกับการใช้ iterator ใน java
ArrayList list = new ArrayList(); list.add("first"); list.add("second"); list.add("third"); for( Iterator i = list.iterator(); i.hasNext();) { System.out.println(i.next()); }
สำหรับคนที่อยากได้ for i = 1 to 10 { } ใน Ruby เราใช้
(1..10).each do |i| puts i end
คำสั่งมาตรฐานสำหรับ Loop อย่าง break และ next
ตัวอย่าง break
name = ['george', 'mike', 'gary', 'diana'] name.each do |name| if name == 'gary' puts('Break!') break end puts(name) end
ผลที่ได้จะหยุด loop ที่ gary
george mike Break!
ตัวอย่าง next
name = ['george', 'mike', 'gary', 'diana'] name.each do |name| if name = 'gary' puts('Next!') next end puts(name) end
ผลที่ได้จะข้าม gary ไป
george mike Next! diana