9.1 if分支main.go

package main

import "fmt"

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

func main() {
   //todo:&&短路与  和  ||短路非
   //只会打印"wowowo"
   if 10 < 9 && test1() { //判断到10<9是false后,由于是&&,就不会再判断test()了
      fmt.Println("hahaha")
   } else {
      fmt.Println("wowowo")
   }

   //只会打印"xixixi"
   if 10 > 9 || test1() { //判断到10>9是true,由于是||,就不会再判断test()了
      fmt.Println("xixixi")
   }

   //会打印test1...和yayaya
   if 10 < 9 || test1() { //判断10<9是false,由于是|| 于是接着判断test1()
      fmt.Println("yayaya")
   }

   //会打印test1...和wuwuwu
   if 10 > 9 && test1() { //判断10>9是true,由于是&& 于是接着判断test1()
      fmt.Println("wuwuwu")
   }

   //todo:多分支结构的陷阱  一下例子中只会打印ok1,两个else根本不会被执行,即if else多分支只会执行一个分支
   n := 10
   if n > 9 {
      fmt.Println("ok1")
   } else if n > 6 {
      fmt.Println("ok2")
   } else if n > 3 && n < 11 { //todo:不能写成 n>3,n<11 也不能写成 3<n<11
      fmt.Println("ok3")
   }

   //todo:if else 多分支不同于 多if,多if的每一个if语句块均会按序执行,下面例子的ok1、ok2、ok3均会打印
   m := 10
   if m > 9 {
      fmt.Println("ok1")
   }
   if m > 6 {
      fmt.Println("ok2")
   }
   if m > 3 {
      fmt.Println("ok3")
   }

   //todo:if 流程中允许if和大括号之间有赋值语句,且该变量作用域只在if语块中;
   if p := 10; p > 6 {
      fmt.Println("ok4") //会打印 ok4   //todo:if的大括号内也可以申明变量,其作用域也只在if语块内
   }
   //todo:在if语块外申明的变量在if语块内也可以使用
   num := 99
   if num%9 == 0 {
      num /= 9
      fmt.Println("num=", num) //num=11
   }
   fmt.Println("num=", num) //num=11

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值