Penghakiman bersyarat Ruby


Ruby menyediakan beberapa struktur bersyarat yang sangat biasa. Di sini, kami akan menerangkan semua pernyataan bersyarat dan pengubah suai yang tersedia dalam Ruby.

Ruby if...else Pernyataan

Sintaks

if conditional [then]
	  code...
[elsif conditional [then]
	  code...]...
[else
	  code...]
end

if Ungkapan digunakan untuk pelaksanaan bersyarat. Nilai false dan nil adalah palsu dan semua nilai lain adalah benar. Ambil perhatian bahawa Ruby menggunakan elsif, tidak lain jika dan elif.

Jika bersyarat adalah benar, laksanakan kod. Jika bersyarat tidak benar, laksanakan kod yang dinyatakan dalam klausa else.

Biasanya kita tinggalkan perkataan terpelihara kemudian . Jika anda ingin menulis formula if lengkap dalam satu baris, anda mesti memisahkan formula bersyarat dan blok program dengan kemudian. Seperti yang ditunjukkan di bawah:

if a == 4 then a = 7 end

instance

#!/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 hasil output di atas:

x 是 1

Ruby if pengubah suai

Tatabahasa

code if condition

Frasa pengubah suai if bermaksud formula di sebelah kiri if hanya akan dilaksanakan apabila syarat di sebelah kanan if adalah benar. Iaitu, jika bersyarat adalah benar, laksanakan kod.

Instance

#!/usr/bin/ruby

$debug=1
print "debug\n" if $debug


Contoh hasil output di atas:

debug

Ruby melainkan Kenyataan

Sintaks

unless conditional [then]
   code
[else
   code ]
end

melainkan dan jika mempunyai kesan yang bertentangan, iaitu, jika bersyarat palsu, maka kod akan dilaksanakan. Jika bersyarat adalah benar, laksanakan kod yang dinyatakan dalam klausa else.

Instance

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

x=1
unless x>2
   puts "x 小于 2"
 else
  puts "x 大于 2"
end


Hasil keluaran contoh di atas ialah:

x 小于 2

Ruby melainkan Pengubah suai

Sintaks

code unless conditional

Jika bersyarat palsu, laksanakan kod.

Instance

#!/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 hasil output di atas:

1 -- 这一行输出
3 -- 这一行输出

Ruby kes Kenyataan

Sintaks

case expression
[when expression [, expression ...] [then]
   code ]...
[else
   code ]
end

kes mula-mula melakukan penghakiman padanan pada ungkapan, dan kemudian melaksanakan pemilihan cawangan berdasarkan hasil padanan.

Ia menggunakan operator === untuk membandingkan ungkapan yang ditentukan oleh bila jika ia konsisten, apabila bahagian dilaksanakan kandungan.

Biasanya kita tinggalkan perkataan terpelihara kemudian . Jika anda ingin menulis formula apabila lengkap dalam satu baris, anda mesti memisahkan ungkapan bersyarat dan blok program dengan kemudian. Seperti ini:

when a == 4 then a = 7 end

Jadi:

case expr0
when expr1, expr2
   stmt1
when expr3, expr4
   stmt2
else
   stmt3
end

Pada asasnya seperti:

_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


Di Atas Contoh hasil keluaran ialah:

小孩

Apabila bahagian "ungkapan" kes itu ditinggalkan, bahagian pertama apabila bahagian keadaan ialah ungkapan benar akan dikira.

rreeee