Ruby - nếu ... khác, trường hợp, trừ khi

Ruby cung cấp các cấu trúc có điều kiện khá phổ biến đối với các ngôn ngữ hiện đại. Ở đây, chúng tôi sẽ giải thích tất cả các câu lệnh điều kiện và bổ ngữ có sẵn trong Ruby.

Câu lệnh Ruby if ... else

Cú pháp

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

nếu biểu thức được sử dụng để thực hiện có điều kiện. Các giá trị falsenil là false và mọi thứ khác đều đúng. Lưu ý Ruby sử dụng elsif, không phải else if nor elif.

Thực thi nếu điều kiện là đúng. Nếu điều kiện không đúng, được chỉ định trong mệnh đề else sẽ được thực thi.

Điều kiện của biểu thức if được phân tách khỏi mã bằng từ dành riêng sau đó , một dòng mới hoặc dấu chấm phẩy.

Thí dụ

#!/usr/bin/ruby

x = 1
if x > 2
   puts "x is greater than 2"
elsif x <= 2 and x!=0
   puts "x is 1"
else
   puts "I can't guess the number"
end
x is 1

Ruby if sửa đổi

Cú pháp

code if condition

Thực thi nếu điều kiện là đúng.

Thí dụ

#!/usr/bin/ruby

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

Điều này sẽ tạo ra kết quả sau:

debug

Ruby trừ khi Tuyên bố

Cú pháp

unless conditional [then]
   code
[else
   code ]
end

Thực thi nếu điều kiện là sai. Nếu điều kiện là đúng, mã được chỉ định trong mệnh đề else sẽ được thực thi.

Thí dụ

#!/usr/bin/ruby

x = 1 
unless x>=2
   puts "x is less than 2"
 else
   puts "x is greater than 2"
end

Điều này sẽ tạo ra kết quả sau:

x is less than 2

Ruby trừ khi sửa đổi

Cú pháp

code unless conditional

Thực thi nếu điều kiện là sai.

Thí dụ

#!/usr/bin/ruby

$var =  1
print "1 -- Value is set\n" if $var
print "2 -- Value is set\n" unless $var

$var = false
print "3 -- Value is set\n" unless $var

Điều này sẽ tạo ra kết quả sau:

1 -- Value is set
3 -- Value is set

Tuyên bố trường hợp Ruby

Cú pháp

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

So sánh biểu thức được chỉ định theo trường hợp và biểu thức được chỉ định bởi khi sử dụng toán tử === và thực thi của mệnh đề when phù hợp.

Các biểu hiện theo quy định của mệnh đề khi được đánh giá là các toán hạng bên trái. Nếu không khi các mệnh đề khớp nhau, case thực thi mã của mệnh đề else .

Một khi biểu hiện tuyên bố của được tách ra từ mã bởi các từ dành riêng sau đó, một dòng mới, hoặc một dấu chấm phẩy. Như vậy -

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

về cơ bản tương tự như sau:

_tmp = expr0
if expr1 === _tmp || expr2 === _tmp
   stmt1
elsif expr3 === _tmp || expr4 === _tmp
   stmt2
else
   stmt3
end

Thí dụ

#!/usr/bin/ruby

$age =  5
case $age
when 0 .. 2
   puts "baby"
when 3 .. 6
   puts "little child"
when 7 .. 12
   puts "child"
when 13 .. 18
   puts "youth"
else
   puts "adult"
end

Điều này sẽ tạo ra kết quả sau:

little child