Базовые типы данных языка
Тип |
Размер, байт |
Диапазон значений |
int |
4 signed |
−2,147,483,648 to +2,147,483,647 |
float |
4 signed |
. |
char |
2 unsigned |
0 to 65,535 |
String |
ограничено размером ОП |
. |
Порядок вычисления выражений при выполнении присваивания.
Значение выражения, вычисленного справа
Арифметические операции. Используются в выражениях, стоящих в правой части присваивания.
Знак операции |
Название операции |
Порядок выполнения |
++ |
Увеличение на единицу |
Справа налево |
-- |
Уменьшение на единицу |
Справа налево |
* |
Умножение |
Слева направо |
/ |
Деление |
Слева направо |
+ |
Сложение |
Слева направо |
- |
Вычитание |
Слева направо |
Операции ++ и -- применимы только для типа int.
Операции отношения. Используются при вычислении условных выражений.
Знак операции |
Название операции |
Порядок выполнения |
< |
Меньше |
Слева направо |
<= |
Меньше или равно |
Слева направо |
> |
Больше |
Слева направо |
>= |
Больше или равно |
Слева направо |
== |
Равно |
Слева направо |
!= |
Не равно |
Слева направо |
Операции отношения применимы только к типам int, float и char. В случае сравнения переменных (или результатов выражений) разного типа, - типы преобразуются согласно правилам преобразования типов. Строки сравниваются посредством зарезервированной ф-ии.
Правила преобразования типов
Операции |
Тип левого (правого) операнда |
Тип правого (левого) операнда |
Результирующий тип |
+, -, *, /, <=, <, >=, >, ==, != |
int |
float |
float |
+ |
int |
string |
string |
+ |
char |
string |
string |
Если в качестве операндов выступают int/char, float/char и float/string, то преобразование типов не выполняется и пользователю выдается сообщение об ошибке.
Комментарии
1) многострочным комментарием считается текст, заключенный в символы ‘/*’ и ‘*/’, может находиться в любом месте программы.
2) однострочным комментарием считается текст, находящийся после символов ‘//’.
Оператор присваивания
Синтаксис:
<Assignment>::=<ExpressionL> = <ExpressionR>;
<ExpressionL>::=<Identifier>{.<Identifier>}
Порядок выполнения операции присвоения:
Вычисляется значение выражения в правой части, затем оно присваивается переменной в левой части, если тип значения и переменной совпадают. В противном случае присваивание не выполняется и пользователю выдается сообщение об ошибке.
Оператор безусловного перехода
Оператор goto осуществляет безусловный переход к оператору, помеченному меткой. При отсутствии такового выдается сообщение об ошибке. Метка должна быть уникальной в пределах программы и должна совпадать с именами переменных, определенных в программе.
Условный оператор
Синтаксис:
If (<ParExpression>) <Block> [ else <Block>]
Вначале вычисляется значение логического выражения <ParExpression>. Если оно возвращает 1 – истина, то выполняется первый блок операторов <Block>, иначе выполняется блок операторов <Block>, стоящий после ключевого слова else, если оно присутствует.
Оператор условного присваивания
Синтаксис:
<CondAssignment>::= (<ParExpression>)? <ExpressionR>: <ExpressionR>;
Вычисляется значение логического выражения <ParExpression>, если значение = 1(истина), то вычисляется значение выражения <ExpressionR>, стоящего после “?” и до “:” и присваивается переменной в левой части, иначе вычисляется значение выражения <ExpressionR>, стоящего после “:” и оно присваивается переменной. Причем присваивание выполняется, если тип вычисленного значения и переменной, стоящей в левой части совпадают. В противном случае присваивание не выполняется и пользователю выдается сообщение об ошибке.