Предыдущая часть — часть 5: комментарии.
Содержание
Оператор if...else
Синтаксис:
if условие [then] code... [elsif условие [then] код...]... [else код...] end
Выражение if используется для проверки истинности условия. Значения условия false и nil являются ложными (false), тогда как все прочие — будут True.
Условие в if может закрываться зарезирвированным словом then, точкой с запятой или новой строкой.
Пример:
#!/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 if x > 2 then 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 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
Результат:
$ ./ifelse_1.rb x is 1 x is 1 x is 1
Ruby модификатор if
Синтаксис:
код if условие
Выполнит код если условие истинно.
Пример:
irb(main):007:0> d = 1 => 1 irb(main):008:0> puts "D exist" if d D exist
Оператор unless
Синтаксис:
unless условие [then] код [else код ] end
Выполняет код, если условие false. Если условие true — будет выполнен код из else.
Пример:
#!/usr/bin/ruby x=1 unless x>2 puts "x is less than 2" else puts "x is greater than 2" end
Результат:
x is less than 2
Ruby модификатор unless
Синтаксис:
код unless условие
Выполняет код, если условие false.
Пример:
#!/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
Результат:
$ ./unless.rb 1 -- Value is set 3 -- Value is set
Оператор case
Синтаксис:
case выражение [when выражение [, выражение ...] [then] код ]... [else код ] end
Сравнивает выражение, заданное в case с выражением в when с помощью оператора ===, и выполняет код, если выражение в when совпадает с выражением в case.
Если ни одно выражение в when не совпадает с выражением в case — будет выполнен код из else.
Фактически, код:
case expression0 when expression1, expression2 code1 when expression3, expression4 code2 else code3 end
будет идентичен коду:
variable = expression0 if expression1 === variable || expression2 === variable code1 elsif expression3 === variable || expression4 === variable code2 else code3 end
Пример:
#!/usr/bin/env ruby
# первый аргумент будет выражением для сравнения
$age = ARGV[0]
# сравнение inetger значения выражения в $age с условиями в when
case $age.to_i
# если $age больше 0 но меньше 2
when 0 .. 2
puts "Возраст: больше 0 но меньше 2"
when 3 .. 6
puts "Возраст: больше 3 но меньше 6"
when 7 .. 12
puts "Возраст: больше 7 но меньше 12"
when 13 .. 18
puts "Возраст: больше 13 но меньше 18"
else
puts "Уже взрослый"
end
Результаты выполнения:
$ ./case.rb 1 Возраст: больше 0 но меньше 2 $ ./case.rb 5 Возраст: больше 3 но меньше 6 $ ./case.rb 10 Возраст: больше 7 но меньше 12 $ ./case.rb 15 Возраст: больше 13 но меньше 18 $ ./case.rb 35 Уже взрослый
Продолжение — часть 7: циклы while, for, until, break, redo и retry.
26 854 views