Hidden
24.05.2014, 17:56
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
ссылка (http://pro-pawn.ru/showthread.php?4511)
Операторы ветвления:
Пример
Пояснение
if
if(var_1 == 256) print("var_1 равно 256");
Если (if) var_1 равно 256, то в консоли выведет "var_1 равно 256".
else
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
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
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
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 (http://pro-pawn.ru/showthread.php?8181).
Оператор sizeof:
Пример
Пояснение
sizeof
new array[25]; // создадим массив на 25 ячеек
printf("Размер массива array - %i.", sizeof(array));
// выведем сообщение в консоль
Данный оператор позволяет узнать размер переменных (в консоли выведет "Размер массива array - 25.").
Оператор циклов/функции,
связанные с циклами
Пример
Пояснение
for
(начальное действие; условие повторения; шаг цикла)
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
(условие повторения)
new i = 2, array[5];
while(i < 5)
{
array[i] = 5;
i++;
}
Особенность цикла заключается в том, что он не будет работать, если условие повторения не выполняется, то есть значения переменной проверяются перед запуском цикла, отчего данный цикл называют циклом с предусловием (в примере присваиваем переменным array[2], array[3], array[4] значение 5).
do-while
new i = 2;
do
{
i++;
}
while(i < 10);
// пока i меньше 10, выполняем цикл ещё раз
Особенность цикла заключается в том, что он сначала выполняет действие, а потом проверяет соответствие условию, отчего данный цикл называют циклом с постусловием (в примере сначала прибавляем к i единицу, а потом проверяем, i меньше десяти или нет).
if-goto
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
new i;
for(i = 0; i < 10; i++)
{
if(i == 5) break;
}
break обрывает действие цикла. Цикл будет прибавлять к i единицу до того момента, когда i станет равной 5. Когда это произойдёт (if(i == 5)), цикл остановится (break;).
continue
new i;
for(i = 0; i < 10; i++)
{
if(i == 5) continue;
printf("%i", i);
}
continue пропускает действие цикла. Цикл будет выводить в консоль значения i, а когда i станет равной 5, цикл пропустит это действие, то есть число 5 в консоль не выведется.
Оператор возврата return:
Автор темы: DeimoS
ссылка (http://pro-pawn.ru/showthread.php?6662)
Тернарный оператор:
Пример
Пояснение
? :
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;
Индекс сжатого массива (символы).
Использованы материалы из http://wiki.sa-mp.com/, PAWN_Language_Guide.pdf.
Арифметические выражения:
Пример
Пояснение
+
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
ссылка (http://pro-pawn.ru/showthread.php?4511)
Операторы ветвления:
Пример
Пояснение
if
if(var_1 == 256) print("var_1 равно 256");
Если (if) var_1 равно 256, то в консоли выведет "var_1 равно 256".
else
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
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
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
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 (http://pro-pawn.ru/showthread.php?8181).
Оператор sizeof:
Пример
Пояснение
sizeof
new array[25]; // создадим массив на 25 ячеек
printf("Размер массива array - %i.", sizeof(array));
// выведем сообщение в консоль
Данный оператор позволяет узнать размер переменных (в консоли выведет "Размер массива array - 25.").
Оператор циклов/функции,
связанные с циклами
Пример
Пояснение
for
(начальное действие; условие повторения; шаг цикла)
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
(условие повторения)
new i = 2, array[5];
while(i < 5)
{
array[i] = 5;
i++;
}
Особенность цикла заключается в том, что он не будет работать, если условие повторения не выполняется, то есть значения переменной проверяются перед запуском цикла, отчего данный цикл называют циклом с предусловием (в примере присваиваем переменным array[2], array[3], array[4] значение 5).
do-while
new i = 2;
do
{
i++;
}
while(i < 10);
// пока i меньше 10, выполняем цикл ещё раз
Особенность цикла заключается в том, что он сначала выполняет действие, а потом проверяет соответствие условию, отчего данный цикл называют циклом с постусловием (в примере сначала прибавляем к i единицу, а потом проверяем, i меньше десяти или нет).
if-goto
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
new i;
for(i = 0; i < 10; i++)
{
if(i == 5) break;
}
break обрывает действие цикла. Цикл будет прибавлять к i единицу до того момента, когда i станет равной 5. Когда это произойдёт (if(i == 5)), цикл остановится (break;).
continue
new i;
for(i = 0; i < 10; i++)
{
if(i == 5) continue;
printf("%i", i);
}
continue пропускает действие цикла. Цикл будет выводить в консоль значения i, а когда i станет равной 5, цикл пропустит это действие, то есть число 5 в консоль не выведется.
Оператор возврата return:
Автор темы: DeimoS
ссылка (http://pro-pawn.ru/showthread.php?6662)
Тернарный оператор:
Пример
Пояснение
? :
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;
Индекс сжатого массива (символы).
Использованы материалы из http://wiki.sa-mp.com/, PAWN_Language_Guide.pdf.