Go核心编程(5)—— 入门篇之运算符介绍与算术运算符

Go核心编程(5)—— 入门篇之运算符介绍与算术运算符

运算符介绍

运算符是一种比较特殊的符号,用以表示数据的运算、赋值和比较等

1、算术运算符 +、-、*、/、%

2、赋值运算符 =、+=、-=、*=

3、比较运算符/关系运算符 ==、!=、>=、<=、>、<

4、逻辑运算符 或与非

5、位运算符

6、其他运算符

运算符优先级

1、运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序

2、只有单目运算符、赋值运算符是从右向左运算的

3、大致的顺序如下:

括号,++,-- > 单目运算符 > 算术运算符 > 移位运算符 > 关系运算符 > 位运算符 > 逻辑运算符 > 赋值运算符 > 逗号

4、具体的顺序如下表(往上优先级最高)

分类描述关联性
后缀() [] -> ++ –从左到右
单目+ - ! ~ (type)* & sizeof从右到左
乘法* / %从左到右
加法+ -从左到右
移位<< >>从左到右
关系< <= >= >从左到右
相等(关系)== !=从左到右
按位AND&从左到右
按位XOR^从左到右
按位OR|从左到右
逻辑AND&&从左到右
逻辑OR||从左到右
赋值运算符= += -= *= /= %= >>= <<= &= ^= |=从右到左
逗号,从左到右

算术运算符

算术运算符是对数值类型的变量进行运算的,比如加减乘除

运算符描述实例
+相加A + B 输出结果 30
-相减A - B 输出结果 -10
*相乘A * B 输出结果 200
/相除B / A 输出结果 2
%求余B % A 输出结果 0
++自增A++ 输出结果 11
自减A-- 输出结果 9
//演示算术运算符基本使用
package main

import (
	"fmt"
)
func main(){

	//演示 / 使用
	//如果参数运算的数都是整数,那么除后去掉小数部分,保留整数部分
	fmt.Println(10 / 4)  //2

	var n1 float32 = 10 / 4  //2
	fmt.Println(n1)

	//如果需要保留小数部分,则需要有浮点数参与运算
	var n2 float32 = 10.0 / 4  //2.5
	fmt.Println(n2)

	//演示 % 使用
	//取模公式:a % b = a - a / b * b
	fmt.Println(10 % 3)   //1
	fmt.Println(-10 % 3)  //-1
	fmt.Println(10 % -3)  //1
	fmt.Println(-10 % -3) //-1

	//演示 ++、-- 使用
	var i int = 10
	i++  //等价i = i + 1  结果为11
	fmt.Println(i)
	i--  //等价i = i - 1  结果为10
	fmt.Println(i)
	
}

算术运算符细节

1、对于除号"/",它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。例如: x:=19/5,结果是3

2、当对一个数取模时,可以等价a%b=a-a/b*b,这样我们可以看到取模的一个本质运算

3、Golang的自增自减只能当作一个独立语言使用时,不能这样使用b:=a++或者b:=a–

4、Golang的++和–只能写在变量的后面,不能写在变量的前面,即:只有a++ a–没有++a --a

5、Golang的设计者去掉c/java中的自增自减容易混淆的写法,让Golang更加简洁,统一

练习案例

package main
import (
	"fmt"
)

func main(){
	//假如还有97天放假,问还有多少个星期零多少天
	var days int = 97
	var week int = days / 7
	var leftDay int = days % 7
	fmt.Printf("%d个星期零%d天\n",week,leftDay)

	//定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:
	//5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度
	var hua float32 = 170.51
	var she float32 = 5.0 / 9 * (hua - 100)  //需要保留小数精度,故而不用5
	fmt.Printf("%v华氏温度对应的摄氏温度=%v",hua,she)

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值