CAPL 编程系列教程的第八期内容,主要讲解 CAPL 中的运算符 (Operators) 的第一部分,重点是算术运算符和赋值运算符
CAPL 编程系列教程 - 第八期:运算符 (第一部分) - 算术与赋值
一、 课程回顾与本期目标
- 回顾: 前面学习了 CAPL 的数据类型(简单和复合)。
- 本期目标: 开始学习 CAPL 中的运算符,本期重点讲解算术运算符和赋值运算符
。 - 与 C 语言的关系:
- CAPL 的运算符基本继承自 C 语言,非常相似
。 - 如果有 C 语言基础,本期内容大部分可以快速浏览或跳过
。 - 主要区别: CAPL 没有指针类型,因此没有指针相关的运算符(如
*用于解引用,&用于取地址)。
- CAPL 的运算符基本继承自 C 语言,非常相似
- 运算符优先级:
- 与 C 语言一致,遵循标准的运算优先级(如乘除优先于加减)
。 - 可以使用小括号
()来改变运算顺序,提高优先级。
- 与 C 语言一致,遵循标准的运算优先级(如乘除优先于加减)
二、 算术运算符 (Arithmetic Operators)
- 运算符:
+(加法)-(减法)*(乘法)/(除法)%(取余/模运算)
- 基本运算: 加减乘的用法与数学运算一致
。 - 示例:
(a + 13) * (29 - 26)。
- 示例:
- 除法
/的规则:- 整数除法: 两个整数相除,结果一定是整数
。 - 截断: 如果整数除法除不尽,结果会直接截断小数部分,不会进行四舍五入
。 - 示例:
10 / 3结果是3;10 / 4结果是2。
- 示例:
- 浮点数参与的除法: 如果除法运算中至少有一个操作数是浮点数,则结果一定是浮点数
。 - 示例:
12.5 / 4结果是3.125;10.0 / 4结果是2.5;10 / 4.0结果是2.5。
- 示例:
- 类型转换: 如果想让两个整数相除得到浮点数结果,需要将其中一个整数强制类型转换为浮点数
。 - 语法:
(float)integer_var / another_integer。 - 示例:
(float)a / 4(其中a是整数 10),先将a转为10.0,再除以 4,得到2.5。
- 语法:
- 占位符: 输出运算结果时,必须使用与实际结果类型匹配的占位符 (
%d对应整数,%f对应浮点数)。用错占位符会导致输出错误(如将浮点结果用%d输出可能得到 0)。
- 整数除法: 两个整数相除,结果一定是整数
- 取余
%的规则:- 只能用于整数: 取余运算符
%两边的操作数必须都是整数类型,不能用于浮点数。 - 示例:
a % 7(其中a是整数 10),结果是3。 - 错误示例:
a % 7.5会导致编译错误。
- 只能用于整数: 取余运算符
- 混合类型运算规则总结:
- 整数与整数运算 -> 结果是整数
。 - 浮点数与浮点数运算 -> 结果是浮点数
。 - 浮点数与整数运算 -> 整数会被隐式转换为浮点数,结果是浮点数
。
- 整数与整数运算 -> 结果是整数
三、 赋值运算符 (Assignment Operators)
- 基本赋值
=:- 将等号右侧表达式的值计算出来,赋给等号左侧的变量
。 - 示例:
a = 10;,b = 12.5;。
- 将等号右侧表达式的值计算出来,赋给等号左侧的变量
- 复合赋值运算符: 将算术运算和赋值合并。
+=(加等于):a += 5;等价于a = a + 5;。 -=(减等于):a -= 3;等价于a = a - 3;。 *=(乘等于):a *= 2;等价于a = a * 2;。 /=(除等于):a /= 3;等价于a = a / 3;。 %=(取余等于):a %= 5;等价于a = a % 5;。 - 注意: 两个符号之间不能有空格
。
- 自增
++和自减--: 用于将变量的值加 1 或减 1。- 后置 (Post-increment/decrement):
a++,a--- 变量先使用其原始值参与当前表达式的运算,然后变量的值再自增或自减 1
。 - 示例:
a = 10; write("Value: %d", a++);会输出Value: 10,之后a变为 11。
- 变量先使用其原始值参与当前表达式的运算,然后变量的值再自增或自减 1
- 前置 (Pre-increment/decrement):
++a,--a- 变量先自增或自减 1,然后再使用其新值参与当前表达式的运算
。 - 示例:
a = 11; write("Value: %d", ++a);会输出Value: 12,之后a也是 12。
- 变量先自增或自减 1,然后再使用其新值参与当前表达式的运算
- 单独使用: 如果
++或--单独作为一条语句(如a++;或++a;),前置和后置的效果是相同的,都是将a的值加 1。
- 后置 (Post-increment/decrement):
四、 总结与后续
- 本期详细讲解了 CAPL 的算术运算符和赋值运算符,包括它们的用法、规则以及与 C 语言的异同,特别强调了整数除法、混合类型运算和自增自减的细节
。 - 下一期将继续讲解 CAPL 的其他运算符,如关系运算符、逻辑运算符和位运算符
。