算数运算符
算数运算符是对数值类型的变量进行运算的,比如:加减乘除。在Go程序中使用的非常多。
加、减、乘 这三个使用的方法没什么特别要注意的地方。
除法的使用:
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)
}
取模的使用:
func main() {
//演示 % 的使用
//看一个公式 a % b = a - a / b * b
fmt.Println("10%3=", 10 % 3) // =1
fmt.Println("-10%3=", -10 % 3) // = -10 - (-10) / 3 * 3 = -10 - (-9) = -1
fmt.Println("10%-3=", 10 % -3) // = 10 - 10 / (-3) * (-3) = 10 - 9 = 1
fmt.Println("-10%-3=", -10 % -3) // = -10 - (-10) / (-3) * (-3) = -10 - (-9) = -1
}
自增和自减的使用:
func main() {
var i int = 10
i++ // 等价 i = i + 1
fmt.Println("i=", i) //11
i-- //等价 i = i - 1 此时i的值已经是11了,所以i-- 的结果是10
fmt.Println("i=", i) //10
}
细节说明:
1)对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。例如: x := 19/5, 结果是3
2)当对一个数取模时,可以等价 a%b=a-a/b*b,这样我们可以看到取模的一个本质运算。
3)Golang的自增自减只能当做一个独立语言使用时,不能这样使用 b := a++ 或者 b := a--
func main() {
var i int = 8
var a int
i++
a = i //这样可以使用的。不能直接使用a = i++ 这是会报错的。
}
if i++ > 0 { ... 这样也是不可以的。
4)Golang 的++ 和-- 只能写在变量的后面,不能写在变量的前面,即:只有a++, a-- 没有 ++a, --a
5)Golang的设计者去掉c / java 中的自增自减的容易混淆的写法,让Golang更加简洁,统一。(强制性的)
练习:
1)假如还有97天放假,问: xx个星期零XX天
func main() {
var days int = 97
var week int = days / 7
var day int = days % 7
fmt.Println("%d个星期零%d天\n", week, day)
}
2)定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度。
func main() {
var huashi float32 = 134.2
var sheshi float32 = 5.0 / 9 * (huashi - 100)
fmt.Printf("%v 对应的摄氏温度=%v \n", huashi, sheshi)
}