Бьерн Страуструп.
Язык программирования С++
72
стандартный способ задания бесконечного цикла, и его можно обозначить словом "вечно". Это
вырожденная форма оператора for, и альтернативой ей может служить оператор while(1). Оператор
switch выполняется повторно до тех пор, пока не перестанут появляться операции + или - , а тогда по
умолчанию выполняется оператор return (default).
Операции += и -= используются для выполнения операций сложения и вычитания. Можно написать
эквивалентные присваивания: left=left+term() и left=left-term(). Однако вариант left+=term() и left-=term()
не только короче, но и более четко определяет требуемое действие. Для бинарной операции @
выражение x@=y означает x=x@y, за исключением того, что x вычисляется только один раз. Это
применимо к бинарным операциям:
+ - * / % & | ^ << >>
поэтому возможны следующие операции присваивания:
+= -= *= /= %= &= |= ^= <<= >>=
Каждая операция является отдельной лексемой, поэтому a + =1 содержит синтаксическую ошибку (из-за
пробела между + и =). Расшифровка операций следующая: % - взятие остатка, &, | и ^ - разрядные
логические операции И, ИЛИ и Исключающее ИЛИ; << и >> сдвиг влево и сдвиг вправо. Функции term()
и get_token() должны быть описаны до определения expr(). В главе 4 рассматривается построение
программы в виде совокупности файлов. За одним исключением, все программы калькулятора можно
составить так, чтобы в них все объекты описывались только один раз и до их использования.
Исключением является функция expr(), которая вызывает функцию term(), а она, в свою очередь,
вызывает prim(), и уже та, наконец,
Достарыңызбен бөлісу: