Các cấu trúc đơn giản trong Ruby
Trong Ruby, nil và false sẽ được diễn giải là false, mọi giá trị khác đều có nghĩa là true (kể cả true, 0 ).
Ta cùng xem xét một vài cấu trúc cú pháp đơn giản có trong Ruby. Ví dụ dưới đây (p014constructs.rb) minh họa cấu trúc if else end. Theo quy ước của Ruby, if và while không đòi hỏi phải có dấu ngoặc bao điều kiện.
# if else end
var = 5
if var > 4
puts "Variable is greater than 4"
puts "I can have multiple statements here"
if var == 5
puts "Nested if else possible"
else
puts "Too cool"
end
else
puts "Variable is not greater than 5"
puts "I can have multiple statements here"
end
Bạn cũng có thể dùng từ khóa elsif như dưới đây – p015elsifex.rb (chú ý elsif chứ không phải elseif)
# elsif example
# Original example
puts "Hello, what\'s your name?"
STDOUT.flush
name = gets.chomp
puts 'Hello, ' + name + '.'
if name == 'Satish'
puts 'What a nice name!!'
else
if name == 'Sunil'
puts 'Another nice name!'
end
end
# Modified example with elsif
puts "Hello, what\'s your name?"
STDOUT.flush
name = gets.chomp
puts 'Hello, ' + name + '.'
if name == 'Satish'
puts 'What a nice name!!'
elsif name == 'Sunil'
puts 'Another nice name!'
end
#Further modified
puts "Hello, what\'s your name?"
STDOUT.flush
name = gets.chomp
puts 'Hello, ' + name + '.'
# || is the logical or operator
if name == 'Satish' || name == 'Sunil'
puts 'What a nice name!!'
end
Một số toán tử điều kiện thông thường khác là: ==, !=, >=, <=, >, <.
Ruby cũng có dạng phủ định của cấu trúc if. Cấu trúc unless bắt đầu bằng unless và kết thúc bằng end. Cấu trúc này có nghĩa là trừ khi điều kiện đặt ra thỏa mãn thì phần thân đoạn mã ở giữa sẽ được thi hành. Nếu điều kiện thỏa mãn thì sẽ không thi hành.
unless ARGV.length == 2 puts "Usage: program.rb 23 45" exit end
Trong chương trình trên, phần thân của cấu trúc sẽ được thi hành trừ khi số phần tử trong mảng ARGV bằng 2 (mảng ARGV chứa các tham số truyền vào cho chương trình). Phương thức Kernel.exit sẽ thoát chương trình, trả lại giá trị môi trường cho hệ điều hành.
Vòng lặp
while là một trong những vòng lặp thường dùng trong Ruby. Ví dụ minh họa:
# Loops var = 0 while var < 10 puts var.to_s var += 1 end
Bài tập nhỏ
1. Viết một chương trình Ruby (p016leapyear.rb) yêu cầu nhập năm và đưa ra trả lời xem năm đó có phải năm nhuận hay không.
2. Viết phương thức leap_year nhận tham số là năm, và kiểm tra xem năm đó có phải năm nhuận hay không, sau đó đưa ra màn hình số phút trong năm đó (chương trình p017leapyearmtd.rb).
Cấu trúc lệnh Case
Dạng này thực chất tương tự với một loạt các câu lệnh if liên tiếp. Sử dụng case sẽ giúp bạn thử một dãy các điều kiện và thi hành lệnh tùy theo điều kiện nào được thỏa mãn. Ví dụ năm nhuận phải chia hết cho 400, hoặc chia hết cho 4 và không chia hết cho 100. Nên nhớ rằng case cũng sẽ trả lại giá trị tại dòng cuối được thi hành
year = 2000 leap = case when year % 400 == 0: true when year % 100 == 0: false else year % 4 == 0 end puts leap # output is: true
nil cũng là đối tượng
Trong Ruby, nil cũng là một đối tượng thật sự. Bạn có thể gọi các phương thức từ nil, hoặc thêm phương thức cho nil như với những đối tượng khác.
thanh van said,
Bạn C40 oi! Bạn post tiếp mấy chương còn lai đi, mình đọc thấy hay lắm bạn dịch rất tốt.Cảm ơn bạn nhiều
c40 said,
Cảm ơn bạn đã động viên ![]()
Tớ vẫn đang tiếp tục dịch, hôm nay hoặc ngày mai sẽ lại đưa thêm 1 đống nữa lên ![]()
RSS feed for comments on this post · TrackBack URI
