package main
import "fmt"
func main() {
//逻辑运算符的使用
//1.&&逻辑与 两个条件都为真时结果为真
var age int = 40
if age > 30 && age < 50 {
fmt.Println("1.逻辑&&条件成立")
}
fmt.Println("------------------")
if age > 30 && age < 40 {
fmt.Println("2.逻辑&&条件成立")
}
//2.逻辑或 || 一个条件为真时结果为真
if age > 30 || age < 50 {
fmt.Println("3.逻辑||条件成立")
}
fmt.Println("------------------")
if age > 30 || age < 40 {
fmt.Println("4.逻辑||条件成立")
}
//3.逻辑非 ! 取结果相反真取假,假取真
if age > 30 {
fmt.Println("5.正常结果是:",age)
}
fmt.Println("------------------")
if !(age > 30) {
fmt.Println("6.逻辑!结果是:",age) //结果为真但是取反 所以不会输出
}
fmt.Println("------------------")
//拓展知识:短路与&&和短路或||
//短路与&&:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false
if age > 50 && age < 60{ //age=40<50为false,所以后面的age<60不会再判断了,结果就不会输出
fmt.Println("ok1")
}
fmt.Println("------------------")
//短路或|| :如果第一个条件为 true,则第二个条件不会判断,最终结果为 true
if age > 30 || age < 10 { //age=40<50为false,所以后面的age<60不会再判断了,结果就不会输出
fmt.Println("ok2")
}
}
运行结果
1.逻辑&&条件成立
------------------
3.逻辑||条件成立
------------------
4.逻辑||条件成立
5.正常结果是: 40
------------------
------------------
------------------
ok2
拓展部分
package main
import "fmt"
//声明一个函数作为测试是否会被输出
func test() bool{
fmt.Println("test....")
return true
}
func main() {
age := 40
//拓展知识:短路与&&和短路或||
//短路与&&:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false
if age > 50 && test(){ //age=40<50为false,所以后面的test()不会再判断了,就不会输出结果
fmt.Println("ok1")
}
fmt.Println("------------------")
//短路或|| :如果第一个条件为 true,则第二个条件不会判断,最终结果为 true
if age > 30 || test() { //age=40>30为true,所以后面的test()不会再判断了,就会直接输出为ture的结果
fmt.Println("ok2")
}
}
运行结果
------------------
ok2