Latest web development tutorials

siklus Ruby

Ruby di loop untuk melakukan blok kode yang sama beberapa kali. Bagian ini akan detail semua loop dukungan Ruby.

Rubysementara pernyataan

tatabahasa

while conditional [do]
   code
end

atau

<pre>
while conditional [:]
   code
end

Ketikakondisionalbenar, dijalankankode.

Atau apakah sintaks: Anda dapat dihilangkan. Tapi untuk menulis rumus sementara di baris, atau Anda harus melakukan: ekspresi terpisah kondisional atau program blok.

contoh

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

$i = 0
$num = 5

while $i < $num  do
   puts("在循环语句中 i = #$i" )
   $i +=1
end

Contoh di atas output:

在循环语句中 i = 0
在循环语句中 i = 1
在循环语句中 i = 2
在循环语句中 i = 3
在循环语句中 i = 4

Rubysementara pengubah

tatabahasa

code while condition

或者

begin 
  code 
end while conditional

Ketikakondisionalbenar, dijalankankode.

Jikasementaradalam pengubah tanpapenyelamatanatau lambatmulaipernyataan memastikanklausul,kode akan dieksekusi sekali sebelum penghakimanbersyarat.

contoh

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

$i = 0
$num = 5
begin
   puts("在循环语句中 i = #$i" )
   $i +=1
end while $i < $num

Contoh di atas output:

在循环语句中 i = 0
在循环语句中 i = 1
在循环语句中 i = 2
在循环语句中 i = 3
在循环语句中 i = 4

Rubysampai laporan

until conditional [do]
   code
end

Ketikakondisionaladalah palsu, mengeksekusikode.

Sintaks do dapat dihilangkan. Tapi untuk menulis sampai rumus, Anda harus melakukan bersyarat ekspresi atau program blok terpisah di baris.

contoh

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

$i = 0
$num = 5

until $i > $num  do
   puts("在循环语句中 i = #$i" )
   $i +=1;
end

Contoh di atas output:

在循环语句中 i = 0
在循环语句中 i = 1
在循环语句中 i = 2
在循环语句中 i = 3
在循环语句中 i = 4
在循环语句中 i = 5

Rubysampai pengubah

tatabahasa

code until conditional

或者

begin
   code
end until conditional

Ketikakondisionaladalah palsu, mengeksekusikode.

Jikasampaisekarang modifier dalam sebuah pernyataan bahwa tidak adapenyelamatanatau lambatmulaimemastikanklausul,kode akan dieksekusi sekali sebelum penghakimanbersyarat.

contoh

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

$i = 0
$num = 5
begin
   puts("在循环语句中 i = #$i" )
   $i +=1;
end until $i > $num

Contoh di atas output:

在循环语句中 i = 0
在循环语句中 i = 1
在循环语句中 i = 2
在循环语句中 i = 3
在循环语句中 i = 4
在循环语句中 i = 5

Rubyuntuk pernyataan

tatabahasa

for variable [, variable ...] in expression [do]
   code
end

ekspresi perhitungan pertama untuk mendapatkan sebuah objek, makaekspresiuntuk setiap elemen secara terpisahkode.

contoh

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

for i in 0..5
   puts "局部变量的值为 #{i}"
end

Di sini, kita telah mendefinisikan kisaran 0..5. Pernyataan untuk saya di 0..5 memungkinkan nilai i dari 0 hingga 5 (dengan 5).

Contoh di atas output:

局部变量的值为 0
局部变量的值为 1
局部变量的值为 2
局部变量的值为 3
局部变量的值为 4
局部变量的值为 5

untuk ... dalamlingkaran hampir persis sama dengan:

(expression).each do |variable[, variable...]| code end

Namun, untuk loop tidak membuat lingkup baru untuk variabel lokal.

Sintaks do dapat dihilangkan. Tapi menulis untuk rumus berturut-turut, maka Anda harus melakukan terpisah bersyarat ekspresi atau program blok.

contoh

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

(0..5).each do |i|
   puts "局部变量的值为 #{i}"
end

Contoh di atas output:

局部变量的值为 0
局部变量的值为 1
局部变量的值为 2
局部变量的值为 3
局部变量的值为 4
局部变量的值为 5

Pernyataan istirahatRuby

tatabahasa

break

Pemutusan loop terdalam. Jika Anda telah dipanggil dalam blok, blok tersebut terkait dengan penghentian (metode pengembalian nil).

contoh

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

for i in 0..5
   if i > 2 then
      break
   end
   puts "局部变量的值为 #{i}"
end

Contoh di atas output:

局部变量的值为 0
局部变量的值为 1
局部变量的值为 2

Rubypernyataan berikutnya

tatabahasa

next

Langsung ke iterasi berikutnya dari loop. Jika Anda menelepon di blok berakhir blok eksekusi(menghasilkanekspresi mengembalikan nil).

contoh

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

for i in 0..5
   if i < 2 then
      next
   end
   puts "局部变量的值为 #{i}"
end

Contoh di atas output:

局部变量的值为 2
局部变量的值为 3
局部变量的值为 4
局部变量的值为 5

Pernyataan redoRuby

tatabahasa

redo

Restart loop iterasi terdalam, kondisi loop tidak dicentang. Jika Anda menelepon di blok tersebut, kemudian restartyieldataupanggilan.

contoh

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

for i in 0..5
   if i < 2 then
      puts "局部变量的值为 #{i}"
      redo
   end
end

Ini menghasilkan hasil sebagai berikut, dan akan memasuki infinite loop:

局部变量的值为 0
局部变量的值为 0
............................

Pernyataan coba lagiRuby

CATATAN: 1.9 dan versi tidak mendukung penggunaan coba lagi dalam satu lingkaran.

tatabahasa

retry

Jikacoba lagimuncul dalam ekspresi mulai penyelamatan klausa, dari awal tubuh mulai re-start.

begin
   do_something   # 抛出的异常
rescue
   # 处理错误
   retry          # 重新从 begin 开始
end

Jika coba lagi muncul dalam iterasi, atau untuk ekspresi dalam tubuh, kembali iterates panggilan dalam blok. parameter iterasi ulang.

for i in 1..5
   retry if some_condition # 重新从 i == 1 开始
end

contoh

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

for i in 1..5
   retry if  i > 2
   puts "局部变量的值为 #{i}"
end

Ini menghasilkan hasil sebagai berikut, dan akan memasuki infinite loop:

局部变量的值为 1
局部变量的值为 2
局部变量的值为 1
局部变量的值为 2
局部变量的值为 1
局部变量的值为 2
............................