[Уроки JASS]Основы синтаксиса, "Условия и циклы" - Wc3-Maps Форум













[ Главная · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: Strateg, Melissa 
Wc3-Maps Форум » Раздел для картостроителей » GUI / Jass » [Уроки JASS]Основы синтаксиса, "Условия и циклы" (Урок №2)
[Уроки JASS]Основы синтаксиса, "Условия и циклы"
-
AncientPenguinДата: Четверг, 02-08-2012, 11:26:11 | Сообщение # 1

загрузка наград ...
Группа: Избранные
Сообщений: 449
Репутация: 526
Статус: Не на сайте
Уроки JASS
Основы синтаксиса, урок № 2. “Условия и циклы”

Условия.


Условия в jass’е похожи на условия триггеров. Сначала проверяется условие и если оно вернет истину (true), то выполнится код, ну а если вернет лож (false), то код не выполниться. Условия выглядят так:

Code
if <условие> then
<действия>
endif


Прежде чем разобрать условия на примерах расскажу об операциях сравнения. Существую следующие операции сравнения:

== - равно
!= - не равно
> - больше
< - меньше
>= - больше либо равно
<= - меньше либо равно
not (<условие>) – не равно (прим. бесполезная фиговина)
<условие> && <условие> - логическое И, возвращает true только если оба условия вернут true
<условие> || <условие> - логическое ИЛИ, вернет true если хоть 1 из условий вернет true

Не уверен, что && и || это не плюшки vjass’a или cjass’a, так что если редактор на них ругается попробуйте заменить их на and (И) и or (ИЛИ).

Теперь примеры использования условий:

Code
local integer a = 10
local integer b = 13

if a < b then
set a = b
endif


Что на русский переводиться так: Если значение переменной a меньше чем значение переменной b то присвоить переменной a значение переменной b.

Можно так же задать действия, на случай если условие вернуло лож:

Code
if <условие> then
<действия, которые будут выполнены, если условие вернуло истину>
else
<действия, которые будут выполнены, если условие вернуло ложь>
endif


прим. else переводится как иначе

Еще можно сделать вот такой финт ушами:

Code
if <условие> then
<действия>
elseif <условие> then
<эти действия выполнятся, если первое условие вернет ложь, а второе - истину>
endif


Можно сделать сколько угодно elseif’ов .

Циклы


Цикл это кусок кода, который будет повторятся несколько раз, пока не выполнится какое либо условие.

Code
loop
exitwhen <условие>
<код>
endloop


Код между loop и endloop будет выполнятся, пока условие не вернет истину. Тут есть один нюанс, если условие цикла никогда не сможет вернуть истину, то получится бесконечный цикл, а это 1) код после цикла никогда не выполнится, 2) будут очень смачные лаги. Циклы обычно используют для перебора всех элементов массива:

Code
local integer I = 0
loop
exitwhen I >= udg_ArrayLenght
set udg_Array[i] = null
endloop


прим. exitwhen может быть в любом месте в цикле.

Комментарии


Еще одна полезная вещь (хоть это и не очевидно) это комментарии. Комментарии это обычный текст, на который варкрафт не будет обращать никакого внимания. Они необходимы для того, чтобы делать пометки в коде, например что делает та или иная функция, или зачем нужна переменная. Синтаксис:

Code
// <текст>


Сначала идет две косые черты, а за ними сам текст. Комментарий заканчивается символом новой строки (новой строкой т.е. кнопочкой энтр).

Code
/* <текст> */


Текст комментария находится между /* и */, и может занимать несколько строк.

Заключение


Смотрим, читаем, вникаем, задания начнутся со следующего урока.
 
-
MarkSpartakДата: Суббота, 04-08-2012, 09:53:14 | Сообщение # 2
Tu tu-ru

загрузка наград ...
Группа: V.I.P.
Сообщений: 1261
Репутация: 1635
Статус: Не на сайте
Давай уже задание!!!!!!!!!
 
-
НубикВЕДата: Суббота, 04-08-2012, 14:06:18 | Сообщение # 3

загрузка наград ...
Группа: Пользователи
Сообщений: 187
Репутация: 261
Статус: Не на сайте
Неинтересно, когда способности делать будем?
[c][/c]
 
Wc3-Maps Форум » Раздел для картостроителей » GUI / Jass » [Уроки JASS]Основы синтаксиса, "Условия и циклы" (Урок №2)
Страница 1 из 11
Поиск:
Рейтинг@Mail.ru
Яндекс.Метрика

Copyright © 2010-2017
Вакансии :: Контакты
Мобильная версия сайта
chat