运算符
基本运算符
所有数据的处理,通过运算符来实现;
两个整型在一起运算结果还是整型;如果有小数参加运算的,运算结果是双精度小数(double)
|
|
Go
整型运算还是整型
整型和浮点型运算,需要做类型转换
%:取余格式:a%b,a and b 必须为整数!
23 % 6 = 3……5 6 % 23 = 0……6 -23 % 6 = 3……-5 23 % -6 = -3……5
取余的结果一定要与被取余的数符号保持一致。
|
|
任何参数对 10 取余,得到的都是个位
例题: 从键盘输入一个三位数的整数,交换百位和十位,然后输出
|
|
自加自减
1 ++n; n++;
符号无论在变量的哪一侧,都是实现自身 +1;++
只能对变量进行运算
|
|
2 (++n) and (n++) 的区别
|
|
在运算式中如果 ++ 在变量的前面,先做自身 +1, 然后再做其它运算;
如果 ++ 在变量的后面,先做运算后自身 +1;
Go
仅支持 i++,避免歧义。
条件运算符
?: c program 唯一的一个三目运算符
运算格式 表达式1? 表达式2 :表达式3;
表达式1的值,如果它的值是非0(条件成立),那么运算结果就是表达式2的值;
如果表达式1的值为0(条件不成立),这时运算结果就是表达式3的值。
|
|
a > b? a : b; 取a/b最大值
eg:从键盘输入 4 门课考试成绩,求最低分
|
|
判断大小,用 ?: 比 if 语句优势
Go
不支持三目运算符,从以上语法中也能看出,复合三目运算极为复杂,难读。
关系运算符
作用:比较两个对象之间量的大小关系
常见:< <= > >= == !=
注:新手常常错在 == 和 = 号上,总是误将判断写成赋值;
关系运算的结果:True(1) and False(0)(成立 or 不成立)
|
|
赋值符号左侧只能为变量,不能为表达式
逻辑运算符 (小心短路)
1 作用:逻辑推理或逻辑判断时,用于连接推理的条件。
运算符有三个:
- 逻辑与
&&
要所有条件都成立,推理才成立 - 逻辑或
||
只要一个条件成立,推理就成立 - 逻辑非
!
取反( !(2>3) : 2<=3 )
2 &&
and ||
(小心短路)
|
|
3 逻辑真 与 逻辑假(布尔运算)
4 小结
- 如果在
a&&b
运算中 a 的值为0,计算机就不会再处理 b 的值。 - 如果在
a || b
运算中,如果 a 条件成立,计算机不会再处理b
eg:表示非数字符号
|
|
类型强制运算符
不按照自然运算规律进行,按照设计程序员的要求进行类型转换。
格式:(强制类型)(强制对象)
|
|
类型长度计算(存储占用字节)
sizeof()
格式:sizeof(运算式/具体类型/数组)
|
|
char 是一个字节,字符串多一个’\0’,获取元素个数需要除以单字节。
Go
unsafe.Sizeof(any)
逗号运算符
格式:表达式1,表达式2,表达式3,
从表达式1开始计算,一直计算到表达式 n,最后把表达式 n 作为运算结果。
|
|
Go
x,y,z = 1,2,3