Выражения и операторы PAWN.
PHP код:
new var_1, var_2, result; // некоторые переменные
Арифметические выражения Арифметические выражения: |
Пример |
Пояснение |
+ |
result = var_1 + var_2; |
Результатом (result) будет сумма var_1 и var_2. |
- |
result = var_1 - var_2;
-var_1 |
Результатом (result) будет разность var_1 и var_2.
Отрицательное значение. |
* |
result = var_1 * var_2; |
Результатом (result) будет произведение var_1 и var_2. |
/ |
result = var_1 / var_2; |
Результатом (result) будет частное var_1 и var_2. |
% |
result = var_1 % var_2; |
Результатом будет остаток деления var_1 и var_2. |
++ |
var_1++
++var_1 |
Прибавление единицы (1). Результатом будет значение var_1 перед прибавлением единицы (1).
Прибавление единицы (1). Результатом будет значение var_1 после прибавления единицы (1). |
-- |
var_1--
--var_1 |
Уменьшение на единицу (1). Результатом будет значение var_1 перед уменьшением на единицу (1).
Уменьшение на единицу (1). Результатом будет значение var_1 после уменьшения на единицу (1). |
Операторы присваивания Операторы присваивания: |
Пример |
Пояснение |
+= |
var_1 += var_2; |
Прибавить к значению var_1 значение var_2. |
-= |
var_1 -= var_2; |
Отнять от значения var_1 значение var_2. |
*= |
var_1 *= var_2; |
Умножить значение var_1 на значение var_2. |
/= |
var_1 /= var_2; |
Разделить значение var_1 на значение var_2. |
%= |
var_1 %= var_2; |
Присвоить значению var_1 остаток от деления var на var_2. |
&= |
var_1 &= var_2; |
Применяет побитовое "и" к var_1 и var_2 и присваивает результат к var_1. |
|= |
var_1 |= var_2; |
Применяет побитовое "или" к var_1 и var_2 и присваивает результат к var_1. |
^= |
var_1 ^= var_2; |
Применяет побитовое "исключающее или" к var_1 и var_2 и присваивает результат к var_1. |
= |
var_1 = var_2; |
Присваивает значению var_1 значение var_2. |
Операторы сравнения Операторы сравнения:
(обычно используются
с оператором if) |
Пример |
Пояснение |
== |
if(var_1 == var_2) |
Если var_1 равно var_2. |
!= |
if(var_1 != var_2) |
Если var_1 не равно var_2. |
> |
if(var_1 > var_2) |
Если var_1 больше var_2. |
< |
if(var_1 < var_2) |
Если var_1 меньше var_2. |
>= |
if(var_1 >= var_2) |
Если var_1 больше либо равно var_2. |
<= |
if(var_1 <= var_2) |
Если var_1 меньше либо равно var_2. |
Логические операторы Логические операторы: |
Пример |
Пояснение |
! |
if(!IsPlayerConnected(playerid)) |
Логическое "НЕ" (если игрок не подключён). |
|| |
if(var_1 == 0 || var_2 == 0) |
Логическое "ИЛИ" (если var_1 равно нулю или var_2 равно нулю). |
&& |
if(var_1 == 0 && var_2 == 0) |
Логическое "И" (если и var_1, и var_2 равны нулю). |
Побитовые операторы Побитовые операторы: |
Автор темы: Pop |
ссылка |
Операторы ветвления Операторы ветвления: |
Пример |
Пояснение |
if |
PHP код:
if(var_1 == 256) print("var_1 равно 256");
|
Если (if) var_1 равно 256, то в консоли выведет "var_1 равно 256". |
else |
PHP код:
if(var_1 == 256) print("var_1 равно 256"); else print("var_1 не равно 256");
|
Если (if) var_1 равно 256, то в консоли выведет "var_1 равно 256", а если иначе (else), то выведет "var_1 не равно 256". |
else if |
PHP код:
if(var_1 == 256) print("var_1 равно 256"); else if(var_1 == 255) print("var_1 равно 255"); else print("var_1 не равно ни 256, ни 255");
|
Если (if) var_1 равно 256, то в консоли выведет "var_1 равно 256", если же (else if) var_1 равно 255 - выведет "var_1 равно 255", а если иначе (else) - выведет "var_1 не равно ни 256, ни 255". |
Оператор варианта Оператор варианта: |
Пример |
Пояснение |
switch |
PHP код:
switch(var_1) { case 256: print("var_1 равно 256"); case 255: print("var_1 равно 255"); default: print("var_1 не равно ни 256, ни 255"); }
|
switch как бы перебирает все значения var_1. В случае, если var_1 = 256 (case 256), в консоли выведет "var_1 равно 256", если же var_1 равно 255 (case 255) - выведет "var_1 равно 255", а если иначе (default) - выведет "var_1 не равно ни 256, ни 255". |
case |
PHP код:
case 1..100: // Пример 1 case 1, 3, 55, 77: // Пример 2
#define SOME_TEXT 0 // Пример 3 switch(var_1) { case SOME_TEXT: print("var_1 равно нулю"); // равносильно: // case 0: print("var_1 равно нулю"); }
|
Если рассмотреть отдельно case, то его можно использовать по-разному: можно просто число (пример выше), можно ряд чисел (Пример 1, от 1 до 100), можно несколько чисел (Пример 2). Также, можно задефайнить (#define*) значение и использовать задефайненный текст (Пример 3).
*#define - директива. Информация о директивах - click. |
Оператор sizeof Оператор sizeof: |
Пример |
Пояснение |
sizeof |
PHP код:
new array[25]; // создадим массив на 25 ячеек printf("Размер массива array - %i.", sizeof(array)); // выведем сообщение в консоль
|
Данный оператор позволяет узнать размер переменных (в консоли выведет "Размер массива array - 25."). |
Операторы циклов/функции, связанные с циклами Оператор циклов/функции,
связанные с циклами |
Пример |
Пояснение |
for
(начальное действие; условие повторения; шаг цикла) |
PHP код:
new i, array[5]; for(i = 0; i < sizeof(array); i++) { array[i] = 5; }
|
Данный цикл содержит в себе счётчик, то есть цикл не остановится, пока переменная i меньше размера массива array, то бишь меньше 5 (в примере присваиваем переменным array[0], array[1], array[2], array[3] и array[4] значение 5). |
while
(условие повторения) |
PHP код:
new i = 2, array[5]; while(i < 5) { array[i] = 5; i++; }
|
Особенность цикла заключается в том, что он не будет работать, если условие повторения не выполняется, то есть значения переменной проверяются перед запуском цикла, отчего данный цикл называют циклом с предусловием (в примере присваиваем переменным array[2], array[3], array[4] значение 5). |
do-while |
PHP код:
new i = 2; do { i++; } while(i < 10); // пока i меньше 10, выполняем цикл ещё раз
|
Особенность цикла заключается в том, что он сначала выполняет действие, а потом проверяет соответствие условию, отчего данный цикл называют циклом с постусловием (в примере сначала прибавляем к i единицу, а потом проверяем, i меньше десяти или нет). |
if-goto |
PHP код:
new i = 8; loop_start: if (i < 10) { printf("Число: %i", i); i++; goto loop_start; }
|
В этом цикле мы создаём переменную со значением 8 (new i = 8), присваиваем циклу loop_start проверку на значение i (if(i < 10)). Если значение истинно, то есть i действительно меньше 10, то выводим значение переменной i, прибавляем к этой переменной единицу и с помощью функции goto запускаем цикл снова (goto loop_start;), только теперь i будет равняться 9. И так далее. |
break |
PHP код:
new i; for(i = 0; i < 10; i++) { if(i == 5) break; }
|
break обрывает действие цикла. Цикл будет прибавлять к i единицу до того момента, когда i станет равной 5. Когда это произойдёт (if(i == 5)), цикл остановится (break;). |
continue |
PHP код:
new i; for(i = 0; i < 10; i++) { if(i == 5) continue; printf("%i", i); }
|
continue пропускает действие цикла. Цикл будет выводить в консоль значения i, а когда i станет равной 5, цикл пропустит это действие, то есть число 5 в консоль не выведется. |
Операторы возврата return Оператор возврата return: |
Автор темы: DeimoS |
ссылка |
Тернарный оператор Тернарный оператор: |
Пример |
Пояснение |
? : |
PHP код:
new a = 20, b = 6, c; c = (a > b) ? a : b;
// Пояснение на примере if/else: new a = 20, b = 6, c; if(a > b) c = a; else c = b;
|
Тернарный оператор, по сути, то же самое, что и операторы ветвления (if/else), только в нём код записывается в одну строку.
Вид (если используются числа): условие ? выражение 1 : выражение 2
Вид (если используется текст): условие ? (текст 1) : (текст 2) |
Прочее Прочее: |
Пример |
Пояснение |
[ ] |
new a[20];
a[5] = 2; |
Индекс обычного массива (ячейки). |
{ } |
new a[20 char];
a{5} = 2; |
Индекс сжатого массива (символы). |