วงจรทับทิม
ทับทิมในวงสำหรับการดำเนินการบล็อกเดียวกันของรหัสหลายต่อหลายครั้ง จะดูรายละเอียดส่วนนี้ลูปทั้งหมดสนับสนุนทับทิม
ทับทิมขณะที่คำสั่ง
ไวยากรณ์
while conditional [do] code end
หรือ
<pre> while conditional [:] code end
เมื่อเงื่อนไขเป็นจริงจะรันรหัส
หรือไวยากรณ์: คุณสามารถละเว้น แต่การที่จะเขียนสูตรขณะที่อยู่ในสายหรือผู้ที่คุณต้องทำ: นิพจน์เงื่อนไขนอกเหนือหรือโปรแกรมบล็อก
ตัวอย่าง
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 while $i < $num do puts("在循环语句中 i = #$i" ) $i +=1 end
เอาท์พุทตัวอย่างข้างต้นคือ
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4
ทับทิมในขณะที่ปรับปรุง
ไวยากรณ์
code while condition 或者 begin code end while conditional
เมื่อเงื่อนไขเป็นจริงจะรันรหัส
ถ้าในขณะที่ปรับแต่งโดยไม่มีการช่วยเหลือหรือหลังจากนั้นเริ่มต้นคำสั่งให้แน่ใจว่าข้อรหัสจะถูกดำเนินการอีกครั้งก่อนการตัดสินเงื่อนไข
ตัวอย่าง
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 begin puts("在循环语句中 i = #$i" ) $i +=1 end while $i < $num
เอาท์พุทตัวอย่างข้างต้นคือ
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4
ทับทิมจนกว่างบ
until conditional [do] code end
เมื่อเงื่อนไขเป็นเท็จรันโค้ด
ไวยากรณ์ไม่สามารถละเว้น แต่การที่จะเขียนจนสูตรที่คุณต้องทำการแสดงออกหรือโปรแกรมเงื่อนไขบล็อกออกจากกันในแถว
ตัวอย่าง
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 until $i > $num do puts("在循环语句中 i = #$i" ) $i +=1; end
เอาท์พุทตัวอย่างข้างต้นคือ
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4 在循环语句中 i = 5
ทับทิมจนการปรับเปลี่ยน
ไวยากรณ์
code until conditional 或者 begin code end until conditional
เมื่อเงื่อนไขเป็นเท็จรันโค้ด
ถ้าจนถึงขณะนี้ปรับแต่งในการแถลงว่าไม่มีการช่วยเหลือหรือหลังจากนั้นจะเริ่มต้นให้แน่ใจว่าข้อรหัสจะถูกดำเนินการอีกครั้งก่อนการตัดสินเงื่อนไข
ตัวอย่าง
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 begin puts("在循环语句中 i = #$i" ) $i +=1; end until $i > $num
เอาท์พุทตัวอย่างข้างต้นคือ
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4 在循环语句中 i = 5
ทับทิมงบ
ไวยากรณ์
for variable [, variable ...] in expression [do] code end
การแสดงออกของการคำนวณครั้งแรกที่จะได้รับวัตถุแล้วการแสดงออกสำหรับแต่ละองค์ประกอบแยกรหัส
ตัวอย่าง
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 puts "局部变量的值为 #{i}" end
ที่นี่เราได้กำหนดไว้ 0..5 ช่วง งบสำหรับฉันใน 0..5 ช่วยให้ค่าของฉัน 0-5 (5)
เอาท์พุทตัวอย่างข้างต้นคือ
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
สำหรับ ... ในวงเกือบจะเทียบเท่ากับ:
(expression).each do |variable[, variable...]| code end
แต่สำหรับวงไม่สร้างขอบเขตใหม่สำหรับตัวแปรท้องถิ่น
ไวยากรณ์ไม่สามารถละเว้น แต่การที่จะเขียนสูตรในแถวแล้วคุณจะต้องทำตามเงื่อนไขที่นอกเหนือการแสดงออกหรือโปรแกรมบล็อก
ตัวอย่าง
#!/usr/bin/ruby # -*- coding: UTF-8 -*- (0..5).each do |i| puts "局部变量的值为 #{i}" end
เอาท์พุทตัวอย่างข้างต้นคือ
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
คำสั่งแบ่งทับทิม
ไวยากรณ์
break
การสิ้นสุดของสุดห่วง ถ้าคุณได้เรียกภายในบล็อก, บล็อกที่เกี่ยวข้องกับการเลิกจ้าง (วิธีส่งกลับไม่มี)
ตัวอย่าง
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i > 2 then break end puts "局部变量的值为 #{i}" end
เอาท์พุทตัวอย่างข้างต้นคือ
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2
ทับทิมคำสั่งต่อไป
ไวยากรณ์
next
ข้ามไปยังย้ำต่อไปของวง ถ้าคุณโทรในบล็อกบล็อกยุติการดำเนินการ(ผลตอบแทนการแสดงออกของผลตอบแทนที่ไม่มี)
ตัวอย่าง
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i < 2 then next end puts "局部变量的值为 #{i}" end
เอาท์พุทตัวอย่างข้างต้นคือ
局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
คำสั่งทำซ้ำทับทิม
ไวยากรณ์
redo
การเริ่มต้นใหม่ย้ำสุดห่วงสภาพห่วงไม่ได้ตรวจสอบถ้าคุณโทรในบล็อกแล้วรีสตาร์ทอัตราผลตอบแทนหรือโทร
ตัวอย่าง
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i < 2 then puts "局部变量的值为 #{i}" redo end end
นี้ก่อให้เกิดผลลัพธ์ต่อไปนี้และจะเข้าสู่วง จำกัด :
局部变量的值为 0 局部变量的值为 0 ............................
งบลองใหม่อีกครั้งทับทิม
หมายเหตุ: 1.9 และรุ่นที่ใหม่ไม่สนับสนุนการใช้ลองใหม่ในวง
ไวยากรณ์
retry
ถ้าลองใหม่อีกครั้งปรากฏในสำนวนที่ว่าเริ่มต้นประโยคกู้ภัยจากจุดเริ่มต้นของร่างกายเริ่มที่จะเริ่มต้นใหม่
begin do_something # 抛出的异常 rescue # 处理错误 retry # 重新从 begin 开始 end
ถ้าลองใหม่อีกครั้งปรากฏในการทำซ้ำหรือการแสดงออกภายในร่างกาย-iterates เรื่องการโทรภายในบล็อก พารามิเตอร์ซ้ำคล้อย
for i in 1..5 retry if some_condition # 重新从 i == 1 开始 end
ตัวอย่าง
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 1..5 retry if i > 2 puts "局部变量的值为 #{i}" end
นี้ก่อให้เกิดผลลัพธ์ต่อไปนี้และจะเข้าสู่วง จำกัด :
局部变量的值为 1 局部变量的值为 2 局部变量的值为 1 局部变量的值为 2 局部变量的值为 1 局部变量的值为 2 ............................