Gelung rubi
Gelung dalam Ruby digunakan untuk melaksanakan blok kod yang sama beberapa kali. Bab ini akan memberikan pengenalan terperinci kepada semua pernyataan gelung yang disokong oleh Ruby.
Ruby sementara pernyataan
sintaks
while conditional [do] code end
atau
<pre> while conditional [:] code end
dilaksanakan apabila bersyarat adalah benar >kod.
Dalam sintaks, lakukan atau : boleh ditinggalkan. Tetapi jika anda ingin menulis ungkapan while dalam satu baris, anda mesti memisahkan ungkapan bersyarat atau blok program dengan do atau :.
Instance
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 while $i < $num do puts("在循环语句中 i = #$i" ) $i +=1 end
Hasil keluaran contoh di atas ialah:
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4
Ruby sementara Pengubah suai
Sintaks
code while condition 或者 begin code end while conditional
Apabila bersyarat adalah benar, laksanakan kod.
Jika pengubah while mengikuti pernyataan mulakan tanpa klausa menyelamat atau memastikan, kod akan Dilaksanakan sekali sebelum bersyarat dinilai.
Instance
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 begin puts("在循环语句中 i = #$i" ) $i +=1 end while $i < $num
Hasil keluaran contoh di atas ialah:
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4
Ruby sehingga Kenyataan
until conditional [do] code end
Apabila bersyarat adalah palsu, laksanakan kod.
Dalam sintaks, do boleh ditinggalkan. Tetapi jika anda ingin menulis formula sehingga pada satu baris, anda mesti memisahkan ungkapan bersyarat atau blok program dengan do.
Instance
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 until $i > $num do puts("在循环语句中 i = #$i" ) $i +=1; end
Hasil keluaran contoh di atas ialah:
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4 在循环语句中 i = 5
Ruby sehingga Pengubah suai
Sintaks
code until conditional 或者 begin code end until conditional
Apabila bersyarat palsu, laksanakan kod.
Jika pengubah hingga mengikuti pernyataan mulakan tanpa klausa menyelamat atau memastikan, kod akan Dilaksanakan sekali sebelum bersyarat dinilai.
Instance
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 begin puts("在循环语句中 i = #$i" ) $i +=1; end until $i > $num
Hasil keluaran contoh di atas ialah:
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4 在循环语句中 i = 5
Ruby untuk Kenyataan
Syntax
for variable [, variable ...] in expression [do] code end
Mula-mula hitung ungkapan untuk mendapatkan objek, dan kemudian laksanakan kod sekali untuk setiap elemen dalam ungkapan.
Instance
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 puts "局部变量的值为 #{i}" end
Di sini kami telah menentukan julat 0..5. Pernyataan untuk i dalam 0..5 membenarkan nilai i dari 0 hingga 5, termasuk.
Hasil keluaran contoh di atas ialah:
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
untuk...dalam Gelung hampir bersamaan sepenuhnya dengan:
(expression).each do |variable[, variable...]| code end
Walau bagaimanapun, gelung for tidak mencipta skop baharu untuk pembolehubah setempat.
Dalam sintaks, do boleh ditinggalkan. Tetapi jika anda ingin menulis formula for pada satu baris, anda mesti memisahkan ungkapan bersyarat atau blok program dengan do.
Instance
#!/usr/bin/ruby # -*- coding: UTF-8 -*- (0..5).each do |i| puts "局部变量的值为 #{i}" end
Hasil keluaran contoh di atas ialah:
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
Ruby break Kenyataan
Syntax
break
Menamatkan gelung paling dalam. Jika dipanggil dalam blok, tamatkan kaedah blok yang berkaitan (kaedah mengembalikan sifar).
Instance
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i > 2 then break end puts "局部变量的值为 #{i}" end
Hasil keluaran contoh di atas ialah:
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2
Ruby seterusnya Kenyataan
Syntax
next
Lompat ke lelaran seterusnya bagi gelung. Jika dipanggil dalam blok, menamatkan pelaksanaan blok (hasil ungkapan mengembalikan sifar).
Contoh
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i < 2 then next end puts "局部变量的值为 #{i}" end
Hasil keluaran contoh di atas ialah:
局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
Ruby buat semula Pernyataan
Sintaks
redo
Mulakan semula lelaran gelung paling dalam tanpa menyemak keadaan gelung. Jika dipanggil dalam blok, mulakan semula hasil atau panggil.
Instance
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i < 2 then puts "局部变量的值为 #{i}" redo end end
Ini akan menghasilkan keputusan berikut dan memasuki gelung tak terhingga:
局部变量的值为 0 局部变量的值为 0 ............................
Ruby cuba semula Pernyataan
Nota: Versi 1.9 dan lebih baru tidak menyokong penggunaan cuba semula dalam gelung.
Sintaks
retry
Jika cuba semula muncul dalam klausa penyelamat ungkapan mula, mulakan semula dari permulaan badan permulaan.
begin do_something # 抛出的异常 rescue # 处理错误 retry # 重新从 begin 开始 end
Mulakan semula panggilan lelaran jika cuba semula berlaku dalam lelaran, dalam blok atau dalam badan a for expression. Parameter lelaran dinilai semula.
for i in 1..5 retry if some_condition # 重新从 i == 1 开始 end
Instance
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 1..5 retry if i > 2 puts "局部变量的值为 #{i}" end
Ini akan menghasilkan keputusan berikut dan memasuki gelung tak terhingga:
局部变量的值为 1 局部变量的值为 2 局部变量的值为 1 局部变量的值为 2 局部变量的值为 1 局部变量的值为 2 ............................