Тема:
Базовый синтаксис
Аргументы
Строки
Условные операторы
Арифметика
Цели:
Примени огра к его погибели.
Руководство:
Информция:
1 2 3 4 |
if 2 + 2 == 4: self.say("2 + 2 equals 4!") # Выполняется всегда, потому что 2 +2 это 4! if 2 + 3 == 4: self.say("2 + 3 equals 4!") # Никогда не выполнится, потому что 2 + 3 это не 4! |
JavaScript:
1 2 3 4 5 |
if(2 + 2 == 4) { this.say("2 + 2 equals 4!"); // Выполняется всегда, потому что 2 +2 это 4! if(2 + 3 == 4) { this.say("2 + 3 equals 4!"); // Никогда не выполнится, потому что 2 + 3 это не 4! } |
CoffeScript:
1 2 3 4 5 |
# Coffeescript can use 'is' instead of '==' if 2 + 2 == 4 @say("2 + 2 equals 4!") # Выполняется всегда, потому что 2 +2 это 4! if 2 + 3 == 4 @say("2 + 3 equals 4!") # Никогда не выполнится, потому что 2 + 3 это не 4! |
Clojure:
1 2 3 4 5 |
(if (= (+ 2 2) 4) (.say this "2 + 2 equals 4!")) ;;Выполняется всегда, потому что 2 +2 это 4! (if (= (+ 2 2) 5) (.say this "2 + 3 equals 4!")) ;;Никогда не выполнится, потому что 2 + 3 это не 4! |
LUA:
1 2 3 4 5 6 |
if 2 + 2 == 4 then self:say("2 + 2 equals 4!") -- Выполняется всегда, потому что 2 +2 это 4! end if 2 + 3 == 4 then self:say("2 + 3 equals 4!") -- Никогда не выполнится, потому что 2 + 3 это не 4! end |
Обзор:
Этот уровень вводит очень много новых понятий.
Для того, чтобы добиться успеха, вам нужно исправить условия оператора if так, чтобы ваш герой говорил с великаном, тем самым заманивая его в ловушку.
Блок Кода в теле оператора if будут выполняться только тогда, когда выполняется условие (оно математическое), и оно истинно.
Достаточно истинных If и людоед попадёт в ловушку пытаясь добраться до вас!
Если это сбивает вас толку, то читайте дальше! Там рассказывается более подробно:
Boolean
Логическое значение означает, что чтолибо истинно или ложно.
Определять является ли что то Истинным или Ложным является сложной темой в программировании, но сейчас мы начнем с простого примера.
Знак сравнения: Равенство
Используйте операторы сравнения для сравнения двух значений. Результатом данного оператора будет истинна или лож.
Первый оператор сравнения мы будем использовать оператор равенства.
В Python, JavaScript, CoffeScript и LUA это записывается как: ==. В Clojure оператором сравнения является =.
Отметим, что в Python, JavaScript и LUA операторы «=» и «==» это два разных оператор «==» логический, в отличие от оператора «=» который является оператором присваивания и используется для присваивания значения переменной! Перепутать эти два оператора, это распространенная ошибка новичков в программировании!
Мы используем «==» следующим образом:
4 == 4 (это верно)
4 == 5 (это ложь)
Мы можем также совместить это с другими математическими операторами, например, с оператором сложения «+»:
2 + 2 == 4 (это верно)
2 + 2 == 5 (это ложь)
в CoffeScript оператором сравнения является оператор is
следовательно используя оператор is запишем предыдущие выражения:
4 is 4 (это верно)
4 is 5 (это ложь)
Можно так же совмещать данный оператор с другими операторами, например со сложением:
2 + 2 is 4 (это верно)
2 + 2 is 5 (это ложь)
В Clojure оператором сравнения является «=», и используется следущим образом:
(= 4 4) (это верно)
(= 4 5) (это ложь)
Так же как и в других языках мы можем совместить эту запись с другими математическими операторами, например с «+»:
(= (+ 2 2) 4) (это верно)
(= (+ 2 2) 5) (это ложь)
Условный оператор: if
,Утверждение Если(if) говорит: «Если(if) это правда, то(then) это сделать»
1 2 3 4 |
if 2 + 2 == 4: self.say("2 + 2 equals 4!") # Выполняется всегда, потому что 2 +2 это 4! if 2 + 3 == 4: self.say("2 + 3 equals 4!") # Никогда не выполнится, потому что 2 + 3 это не 4! |
JavaScript:
1 2 3 4 5 6 |
if(2 + 2 == 4) { this.say("2 + 2 equals 4!"); // Выполняется всегда, потому что 2 +2 это 4! } if(2 + 3 == 4) { this.say("2 + 3 equals 4!"); // Никогда не выполнится, потому что 2 + 3 это не 4! } |
CoffeScript:
1 2 3 4 5 |
# Coffeescript can use 'is' instead of '==' if 2 + 2 == 4 @say("2 + 2 equals 4!") # Выполняется всегда, потому что 2 +2 это 4! if 2 + 3 == 4 @say("2 + 3 equals 4!") # Никогда не выполнится, потому что 2 + 3 это не 4! |
Clojure:
1 2 3 4 5 |
(if (= (+ 2 2) 4) (.say this "2 + 2 equals 4!")) ;;Выполняется всегда, потому что 2 +2 это 4! (if (= (+ 2 2) 5) (.say this "2 + 3 equals 4!")) ;;Никогда не выполнится, потому что 2 + 3 это не 4! |
LUA:
1 2 3 4 5 6 |
if 2 + 2 == 4 then self:say("2 + 2 equals 4!") -- Выполняется всегда, потому что 2 +2 это 4! end if 2 + 3 == 4 then self:say("2 + 3 equals 4!") -- Никогда не выполнится, потому что 2 + 3 это не 4! end |
Награда:
Бонус за чистый код:
Большой кусака, прохождение:
Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Команды, находящиеся в теле if-оператора, написанные ниже будут исполнятся ,только если условие в скобках будет выполнено. # == обозначает "равно ли", т.е. сравнение. if 2 + 2 == 4: self.say("Hey!") if 2 + 2 == 4: self.say("Yes, you!") # Измени оператор так , чтобы заставить твоего героя крикнуть: "Иди ко мне!" if 3 + 3 == 6: # ∆ Make this true. self.say("Come at me!") if 2 == 2: # ∆ Make this true. # Добавь еще одну насмешку чтобы приманить огра. Подойди к делу творчески! self.say("Do not go here, there is a trap!") |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// Команды, находящиеся в теле if-оператора, написанные ниже будут исполнятся ,только если условие в скобках будет выполнено. // == обозначает "равно ли", т.е. сравнение. if (2 + 2 == 4) { this.say("Hey!"); } if (2 + 2 == 4) { this.say("Yes, you!"); } // Измени оператор так , чтобы заставить твоего героя крикнуть: "Иди ко мне!" if (3 + 3 == 6) { // ∆ Make this true. this.say("Come at me!"); } if (2 == 2) { // ∆ Make this true. // Добавь еще одну насмешку чтобы приманить огра. Подойди к делу творчески! this.say("Do not go here, there is a trap!"); } |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Команды, находящиеся в теле if-оператора, написанные ниже будут исполнятся ,только если условие в скобках будет выполнено. if 2 + 2 is 4 @say "Hey!" if 2 + 2 is 4 @say "Yes, you!" # Измени оператор так , чтобы заставить твоего героя крикнуть: "Иди ко мне!" if 3 + 3 is 6 # ∆ Make this true. @say "Come at me!" if 2 is 20 # ∆ Make this true. # Добавь еще одну насмешку чтобы приманить огра. Подойди к делу творчески! @say "Do not go here, there is a trap!" |
Clojure:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
;; Команды, находящиеся в теле if-оператора, написанные ниже будут исполнятся ,только если условие в скобках будет выполнено. ;; = обозначает "равно". (if (= (+ 2 2) 4) (.say this "Hey!")) (if (= (+ 2 2) 4) (.say this "Yes, you!")) ;; Измени оператор так , чтобы заставить твоего героя крикнуть: "Иди ко мне!" (if (= (+ 3 3) 6) ;; ∆ Make this true. (.say this "Come at me!")) (if (= 2 2) ;; ∆ Make this true. ;; Добавь еще одну насмешку чтобы приманить огра. Подойди к делу творчески! (.say this "Do not go here, there is a trap!") ) |
LUA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
-- Команды, находящиеся в теле if-оператора, написанные ниже будут исполнятся ,только если условие в скобках будет выполнено. -- == обозначает "равно ли", т.е. сравнение. if 2 + 2 == 4 then self:say("Hey!") end if 2 + 2 == 4 then self:say("Yes, you!") end -- Измени оператор так , чтобы заставить твоего героя крикнуть: "Иди ко мне!" if 3 + 3 == 6 then -- ∆ Make this true. self:say("Come at me!") end if 2 == 2 then -- ∆ Make this true. -- Добавь еще одну насмешку чтобы приманить огра. Подойди к делу творчески! self:say("Do not go here, there is a trap!") end |
Комментарии: