【入门】Go语言运算符详解
一、算数运算符
+ - * / % ++ --
1.1 案例一:算数运算符练习
package main
import "fmt"
func main(){
// 加减乘除
fmt.Printf("1 + 1 = %v \n",1+1)
fmt.Printf("3 - 1 = %v \n",3-1)
fmt.Printf("5 * 5 = %v \n",5*5)
fmt.Printf("10 / 3 = %v \n",10/3)
// 取余 %
fmt.Println("10 % 3 =",10%3)
// 自增
var num byte = 10
num ++ // 等价于 num = num + 1
fmt.Println(num)
// 自减
var num2 byte = 100
num2--
fmt.Println(num2)
}
代码输出内容:
1 + 1 = 2
3 - 1 = 2
5 * 5 = 25
10 / 3 = 3
10 % 3 = 1
11
99
1.2 案例二:求三门成绩的总和、平均分
语文:90 数学:80 英语:100
package main
import "fmt"
func main() {
var language = 90
var mathematics = 80
var english = 100
var total = language + mathematics + english
fmt.Printf("总和:%d 平均分:%d", total, total/3)
}
代码输出内容:
总和:270 平均分:90
1.3 案例三:计算商场买衣服总共消费多少元
- T恤价格: 35元/件,裤子价格:120/条,小明购买了3件T恤和2条裤子,并且打了8.8折,请计算小明需要支付多少元?
- 只收取小明整数部分的钱。
package main
import "fmt"
func main() {
var shirt int = 35
var trousers int = 120
var total int = shirt*3 + trousers*2
var discount float64 = float64(total) * 0.88
fmt.Printf("需要支付:%d元", int(discount))
}
代码输出内容:
需要支付:303元
二、赋值运算符
= += -= /= %=
案例:
package main
import "fmt"
func main() {
var num = 10
num += 10
num -= 5
num *= 3
num /= 3
fmt.Println(num)
}
代码输出内容:
15
三、关系运算符
== != > < <= >=
关系运算符的结果是bool值,要么true,要么false
案例:
package main
import "fmt"
func main(){
fmt.Println(1==1)
fmt.Println(1>1)
fmt.Println(1<1)
fmt.Println(1!=1)
fmt.Println(1>=1)
fmt.Println(1<=1)
}
代码输出内容:
true
false
false
false
true
true
四、逻辑运算符
&& || !
- 逻辑与:真真为真,真假为假、假真为假、假假为假
- 逻辑或:真真为真、真假为真、假真为真、假假为假
- 逻辑非:取反
案例:
package main
import "fmt"
func main() {
// 逻辑与 &&
fmt.Println(true && true)
fmt.Println(false && true)
fmt.Println(true && false)
fmt.Println(false && false)
fmt.Println()
// 逻辑或 ||
fmt.Println(true || true)
fmt.Println(false || true)
fmt.Println(true || false)
fmt.Println(false || false)
fmt.Println()
// 逻辑非 !
fmt.Println(!true)
fmt.Println(!false)
}
代码输出内容:
true
false
false
false
true
true
true
false
false
true
五、其他运算符
& *
- &:返回变量的存储地址
- *:取指针变量对应的数值
案例:
package main
import "fmt"
func main() {
var age int = 18
fmt.Println("age变量对应的存储空间地址为: ", &age)
var ptr *int = &age
fmt.Println("ptr指针对应的值为: ", *ptr)
}
代码输出内容:
age变量对应的存储空间地址为: 0xc000018098
ptr指针对应的值为: 18