Прежде всего, вот ответы на практические задачи из части 1:
# Practice Problems # Write a method that returns true if the first input # is larger than the second input. Otherwise, false. def first_larger_than_second?(a,b) a > b end puts first_larger_than_second?(5,3) == true puts first_larger_than_second?(3,5) == false puts first_larger_than_second?(5,5) == false # Write a method that returns true if the first input # equals the second input. def first_equals_second?(a,b) a == b end puts first_equals_second?(5,3) == false puts first_equals_second?(3,5) == false puts first_equals_second?(5,5) == true # BONUS # Write a method that combines two strings into one. def combine_strings(a,b) a + b end puts combine_strings("cat", "dog") == "catdog" puts combine_strings("123", "456") == "123456"
Подожди, какого черта? Как мы просто добавили две строки в бонусный вопрос? Это называется конкатенацией строк. Как упоминалось в разделе о строках части 1, Ruby может добавлять числа и строки.
Теперь, что касается сегодняшних тем, мы рассмотрим логические, условные, истинные и ложные. Как всегда, рекомендую подписаться на https://replit.com/languages/ruby.
Булевы значения
Мы коснулись их в части 1. Есть два логических значения: true
или false
. Они обычно используются с различными операторами, такими как &&
(логическое «и»), ||
(логическое «или») и !
(логическое «отрицание»). &&
возвращает true
только в том случае, если обе стороны верны, иначе false
. ||
возвращает true
, если одна из сторон равна true
, иначе false
. !
меняет значение на противоположное. Давайте рассмотрим несколько примеров:
i_am_human = true i_wrote_this_post = true i_can_fly = false puts i_am_human && i_wrote_this_post # true. Both statements are true. puts i_am_human && i_can_fly # false. Only one statement is true. puts i_am_human || i_can_fly # true. At least one statement is true. puts !i_can_fly # true. By the miracle of `!`, I can now fly.
Условные
Классическое заявление if
. Теперь мы можем применить наши знания из раздела логических значений! Когда условие в if
оценивается как true
, выполняется тело оператора if
. В противном случае он перейдет к else
.
if i_am_human puts "yay we are human!" # since i_am_human was previously defined as true, this line will run. else puts "yay we are dancers!" # this line will not run. end # Shorthand conditional puts "hello world" if true
Правда и Фальси
Итак, вам не всегда нужно придавать условному оператору логическое значение. Вы можете дать ему ЛЮБОЙ объект Ruby! Каждый объект Ruby неявно рассматривается как логическое значение. Для простоты каждый объект является истинным (или оценивается как true
в условных выражениях), за исключением nil
и false
, которые называются ложными.
my_cat = "Loco" if my_cat puts "Somebody pet that cat!!" # This line is executed because "Loco" is truthy. else puts "Nothing to see here" end
Заключение
Условные выражения имеют решающее значение для самых основных задач программирования. Имея эти знания в своем наборе инструментов, вы теперь можете писать более сложный код. А пока давайте проверим ваши знания. Увидимся в следующий раз!
# Practice Problems # Write a method to determine if "a" is between "b" and "c". # Assuming: "b" is always less than "c" def is_between?(a,b,c) end is_between?(1,2,3) == false is_between?(1,0,3) == true is_between?(1,1,1) == false # Write a method that returns true if the input is truthy. Else, false. def is_truthy?(a) end is_truthy?(5) == true is_truthy?("5") == true is_truthy?(nil) == false is_truthy?(false) == false # BONUS # What will this return? Try to figure it out without running it on your machine. Why did it evaluate this way? puts "A" && true || false