一.关系运算符
1).关系运算符的结果都是bool型,要么true,要么false
2).关系表达式经常使用在if结构的条件中或循环结构的条件中
关系运算符一览表
package main
import "fmt"
//案例演示
func main() {
var a int = 4
var b int = 3
fmt.Println(a > b)
fmt.Println(a >= b)
fmt.Println(a < b)
fmt.Println(a <= b)
fmt.Println(a == b)
fmt.Println(a !=b )
flag := a > b
fmt.Println(flag)
}
细节说明:
1).关系运算符的结果都是bool型, 要么true,要么false
2).关系运算符组成的表达式,称之为关系表达式: a > b
3).比较运算符 "==" 不能写成 "="
二.逻辑运算符
用于连接多个条件(一般来讲就是关系表达式),最终结果也是一个bool值
逻辑运算符一览表
注意事项
1).&&也叫短路与,如果第一个条件为false,则第二个条件不会判断,最终结果为false
2).||也叫短路或,如果第一个添条件为true,则第二个条件不会判断,最终结果为true
//案例演示
package main
import "fmt"
//声明一个函数
func test() {
fmt.Println("test...")
return true
}
func main() {
var i int = 10
//短路与
//说明: i < 9 为 false,故后面的test()就不会执行
if i < 9 && test() {
fmt.Println("ok...")
}
//短路或
//说明: i > 9 为 true,故后面的test()就不会执行
if i > 9 || test() {
fmt.Println("ok...")
}
}
三.赋值运算符
赋值运算符就是将某个运算后的值,赋给指定的变量
赋值运算符
分类一
分类二
说明:分类二部分的赋值运算符涉及到二进制相关知识,放到二进制讲解的时候补充
案例演示
//赋值运算符的基本使用
//1.基本使用
//2.有两个变量,a,b,要求将其交换并打印出来
//3.+=的使用
package main
import "fmt"
func main() {
//1.基本使用
var i int
i = 10 //基本赋值
//2.有两个变量,a,b,要求将其交换并打印出来
// a = 8, b = 7 ==> a = 7, b = 8
a := 8
b := 7
fmt.Printf("交换前a = %v,b = %v \n", a, b)
//定义一个临时变量
t := a
a := b
b := t
fmt.Printf("交换后a = %v,b = %v \n", a, b)
//3.复合赋值+=操作
a += 17 // 等价于 a = a + 17
fmt.Println("a = ", a)
}
赋值运算符的特点
1).运算顺序从左至右
2).赋值运算符的左边只能是变量,右边可以是变量,表达式,常量值
3).复合赋值运算符等价于下面效果,eg: a += 1 ==> a = a + 1
package main
import "fmt"
func test() {
fmt.Println("test...")
return 11
}
func main() {
var c int
var a int = 5
c = a + 3 //赋值运算的顺序是从右到左
//赋值运算符的左边只能是变量,右边可以是变量,表达式,常量值
//表达式:任何有值都可以看做是表达式
var d int
d = a
d = 8 + 2 * 6 // =右边是表达式
d = test() + 99 // =右边是表达式
d = 888 //888是一个常量
}
//有两个变量,a,b,要求将其交换,但不允许使用中间变量,打印出来
package main
import "fmt"
func main() {
var a int = 77
var b int = 33
a = a + b
b = a - b
a = a - b
fmt.Printf("交换后的a=%v,b=%v", a, b)
}