@[TOC](Golang中的运算符
- 运算符介绍
- 算数运算符
- 基本介绍
- 细节说明
- 关系运算符(比较运算符)
- 基本介绍
- 细节说明
- 逻辑运算符
- 基本介绍
- 细节说明
- 赋值运算符
- 基本介绍
- 细节说明
- 运算符优先级
运算符介绍
运算符是一种特殊的符号,用来表示数据的运算、赋值和比较
- 1.算数运算符
- 2.赋值运算符
- 3.比较运算符/关系关系运算符
- 4.逻辑运算符
- 5.位运算符
- 6.其他运算符
算数运算符
基本介绍
算数运算符是对数值类型的变量进行运算的,比如:加减乘除
package main
import (
"fmt"
)
func main(){
//如果运算的数都是整数,那么除后,去掉小数部分,保留整数部分
fmt.Println(10 / 4)
var n1 float32 = 10 / 4
fmt.Println(n1)
//若希望保留小数部分,则需要有浮点数参与运算
var n2 float32 = 10.0 / 4
fmt.Println(n2)
//演示%的使用
fmt.Println(10 % 3)
// ++和--的使用
var i int = 10
i++ //等价i = i + 1
fmt.Println(i)
i-- 等价i = i - 1
fmt.Println(i)
}
package main
import (
"fmt"
)
func main(){
//加入还有97天放假,问还有几个星期多少天
var days int = 97
var week int = days / 7
var day int = days % 7
fmt.Printf("%d个星期零%d天\n", week, day)
//定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为
//5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度
var h float32 = 134.2
var s float32 = 5.0 / 9 * (h - 100)
fmt.Printf("对应的摄氏温度为%v", s)
}
细节说明
-
1.对于除号"/",它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分二舍弃小数部分。
-
2.当对一个数取模时,可以等价a%b=a-a/b*b,这样我们可以看到取模的一个本质运算
-
3.Golang的自增自检只能当做一个独立语言使用时,不能使用b:=a++或者b:a–
-
4.Golang的++和–只能泻在变量的后面,不能写在变量的前面,即只有a++,a–没有++a,- -a
例题:
关系运算符(比较运算符)
基本介绍
- 1.关系运算符的结果都是bool型,也就是要么是true,要么是false
- 2.关系表达式经常用在if结构的条件中或循环结构的条件中
package main
import (
"fmt"
)
func main(){
//演示关系运算符的使用
var n1 int = 9
var n2 int = 8
fmt.Println(n1 == n2)
fmt.Println(n1 != n2)
fmt.Println(n1 > n2)
fmt.Println(n1 >= n2)
fmt.Println(n1 < n2)
fmt.Println(n1 <= n2)
flag := n1 > n2
fmt.Println("flag",flag)
}
细节说明
- 1.关系运算符的结果都是bool型,也就是要么是true,要么是false
- 2.关系运算符的表达式,我们成为关系表达式:a>b
- 3.比较运算符"==“不能误写成”="
逻辑运算符
基本介绍
用于连接多个条件(一般是就是关系表达式),最终的结果也是一个bool值。
package main
import (
"fmt"
)
func main(){
//演示逻辑运算符的使用 &&
var age int = 40
if age > 30 && age < 50{
fmt.Println("ok1")
}
if age > 30 && age < 40{
fmt.Println("ok2")
}
//演示逻辑运算符的使用 ||
if age > 30 || age < 50{
fmt.Println("ok3")
}
if age > 30 || age < 40{
fmt.Println("ok4")
}
//演示逻辑运算符的使用 !
if age > 30 {
fmt.Println("ok5")
}
if !(age > 30){
fmt.Println("ok2")
}
}
细节说明
- 1.&&也叫短路与:如果第一个条件为false,则第二个条件不会判断,最终结果为false
- 2.||也叫短路或:如果第一个条件为true,则第二个条件不会判断,最终结果为true
赋值运算符
基本介绍
赋值运算符就是将某个运算后的值,赋给指定的变量。
package main
import (
"fmt"
)
func main(){
a := 19
b := 12
fmt.Printf("交换前的情况是a = %v,b = %v\n",a , b)
//定义一个临时变量
t := a
a = b
b =t
fmt.Printf("交换后的情况是a = %v,b = %v\n",a , b)
//复合赋值的操作
a += 17
fmt.Printf("a=", a)
}
细节说明
- 1.运算顺序从右往左
- 2.赋值运算的左边是能变量,右边可以是变量、表达式、常量值
- 3.复合赋值运算符等价于以下结果:a += 3等价于 a = a + 3
运算符优先级
- 1.运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。如下表上一行运算符总优于下一行。
- 2.只有单目运算符、赋值运算符是从右到左运算的。