Ruby bersyarat
Ruby menyediakan beberapa konstruksi kondisional umum. Di sini kita akan menjelaskan semua pernyataan bersyarat dan pengubah Ruby tersedia.
Rubyjika ... pernyataan lain
tatabahasa
if conditional [then] code... [elsif conditional [then] code...]... [else code...] end
jikaungkapan untuk eksekusi kondisional. Nilaipalsudannihilpalsu, nilai-nilai lain benar. Harap dicatat, Ruby menggunakan elsif, daripada menggunakan lain jika dan Elif.
Jikabersyaratbenar, makakode.Jikakondisionaltidak benar, klausul lain yang ditentukan dalamkodedijalankan.
Kami biasanya menghilangkan kata reserved kemudian. Jika Anda ingin menulis lengkap jika rumus berturut-turut, maka Anda harus dipisahkan menurut jenis dan kondisi dari blok program yang. Sebagai berikut:
if a == 4 then a = 7 end
contoh
#!/usr/bin/ruby # -*- coding: UTF-8 -*- x=1 if x > 2 puts "x 大于 2" elsif x <= 2 and x!=0 puts "x 是 1" else puts "无法得知 x 的值" end
Contoh output di atas:
x 是 1
Rubyjika pengubah
tatabahasa
code if condition
jika frase berarti bahwa ketika dimodifikasi hanya jika kondisi di kanan pendirian jika kiri eksekusi ekspresi. Artinya, jikabersyaratbenar, makakode.
contoh
#!/usr/bin/ruby $debug=1 print "debug\n" if $debug
Contoh output di atas:
debug
Rubykecuali pernyataan
tatabahasa
unless conditional [then] code [else code ] end
kecuali formula sebaliknya bertindak dan jika, yaitu, jikakondisionaladalah palsu, maka mengeksekusikode.Jikabersyaratbenar, klausul lain yang ditentukan dalamkodedijalankan.
contoh
#!/usr/bin/ruby # -*- coding: UTF-8 -*- x=1 unless x>2 puts "x 小于 2" else puts "x 大于 2" end
Contoh di atas output:
x 小于 2
Rubykecuali pengubah
tatabahasa
code unless conditional
Jikakondisionaladalah palsu, mengeksekusikode.
contoh
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $var = 1 print "1 -- 这一行输出\n" if $var print "2 -- 这一行不输出\n" unless $var $var = false print "3 -- 这一行输出\n" unless $var
Contoh output di atas:
1 -- 这一行输出 3 -- 这一行输出
pernyataan kasusRuby
tatabahasa
case expression [when expression [, expression ...] [then] code ]... [else code ] end
ekspresikasus pertandingan pertama hakim, kemudian cabang pada hasil pertandingan.
Menggunakan operator=== untuk membandingkan ketikaekspresiyangditentukan,jika konsisten, maka pelaksanaan konten ketikabagian.
Kami biasanya menghilangkan kata reserved kemudian. Jika Anda ingin menulis lengkap ketika rumus berturut-turut, maka Anda harus dipisahkan menurut jenis dan kondisi dari blok program yang. Sebagai berikut:
when a == 4 then a = 7 end
Oleh karena itu:
case expr0 when expr1, expr2 stmt1 when expr3, expr4 stmt2 else stmt3 end
Hakekatnya sama:
_tmp = expr0 if expr1 === _tmp || expr2 === _tmp stmt1 elsif expr3 === _tmp || expr4 === _tmp stmt2 else stmt3 end
contoh
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $age = 5 case $age when 0 .. 2 puts "婴儿" when 3 .. 6 puts "小孩" when 7 .. 12 puts "child" when 13 .. 18 puts "少年" else puts "其他年龄段的" end
Contoh di atas output:
小孩
Ketika "ekspresi" bagian dari kasus ini dihilangkan, kondisi perhitungan ketika bagian dari ekspresi yang benar.
foo = false bar = true quu = false case when foo then puts 'foo is true' when bar then puts 'bar is true' when quu then puts 'quu is true' end # 显示 "bar is true"