逻辑运算符

痴心易碎 提交于 2019-11-27 03:49:04

用于连接多个条件(一般来讲就是关系表达式),最终的结果也是一个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...")
  }
}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!