逻辑运算符

用于连接多个条件(一般来讲就是关系表达式),最终的结果也是一个bool值。

func main() {

  //演示逻辑运算符的使用 &&
  var age int = 40
  if age > 30 && age < 50 {
    fmt.Println("OK1")    //结果是true,输出。
  }


  if age > 30 && age < 40 {
    fmt.Println("OK2")   //结果是false,不输出。
  }

  //演示逻辑运算符的使用 ||
  if age > 30 || age < 50 {
    fmt.Println("OK3")    //结果是true,输出。
  }


  if age > 30 || age < 40 {
    fmt.Println("OK4")    //结果是true,输出。
  }

  //演示逻辑运算符的使用 !
  if age > 30 {
    fmt.Println("OK5") //结果是true,输出。
  }


  if !(age > 30) {
    fmt.Println("OK6") //结果是false,不输出。
  }
}


注意事项和细节说明:

1) && 也叫短路与:如果第一个条件为false,则第二个条件不会判断,最终结果为false。

2)|| 也叫短路或:如果第一个条件为true,则第二个条件不会判断,最终结果为true。

案例演示:

cat main.go
package main
import "fmt"

//声明一个函数(测试)

func test() bool {
  fmt.Println("test....")
  return true
}

func main() {

  var i int = 10
  //短路与
  //说明:因为 i < 9 为false,因此后面的test() 就不执行
  if i < 9 && test() {
    fmt.Println("ok...")
  }

  //说明:i < 9 虽然为false,但是后面的test()函数是true的,所以最后输出的结果是 test.... 和 hello...
  if i < 9 || test() {
    fmt.Println("hello...")
  }

  //短路或
  说明:因为 i > 9 为true,因此后面的test() 就不执行了,最后输出的结果为 hello...
  if i > 9 || test() {
    fmt.Println("hello...")
  }
}

posted @ 2019-08-12 21:40  我是一只忙碌的小青蛙  阅读(136)  评论(0编辑  收藏  举报