从零学习go语言(二)

109 阅读1分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第11天,点击查看活动详情

控制结构

if条件语句

func main() {
   i := 10
   if i > 10 {
      fmt.Println("i > 10")
   } else {
      fmt.Println("i <= 10")
   }
}

注意:

  1. if后面的条件表达式不需要使用()
  2. if后面的{ } 是必须的,即使只有一句话
  3. { 不能独占一行 else前的 } 也不能独占一行

go语言的if语句中可以有一个简单的表达式语句,可以在 if 语句条件判断前进行初始化,初始化的变量只能在这个if else语句中使用。

func main() {
   if i := 6;i > 10 {
      fmt.Println("i > 10")
   } else {
      fmt.Println("i <= 10")
   }
}

switch选择语句

switch i := 6; {
case i > 10:
   fmt.Println("i>10")
case i > 5 && i <= 10:
   fmt.Println("5<i<10")
default:
   fmt.Println("i<=5")
}

case从上到下逐一进行判断,一旦满足条件立即执行对应分支并返回(break),其余分支不再做判断。

func main() {
   switch i := 1; i{
   case 1:
      fallthrough
   case 2:
      fmt.Println("1")
   default:
      fmt.Println("没有匹配")
   }
}

在上面的程序中,switch后面初始化语句后面有一个变量,这就要求case的类型必须与这个变量类型相同,否则编译不能通过。case 1中的fallthrough表示如果case满足条件会继续执行下面的case,继续寻找。

for循环语句

func main() {
   sum := 0
   for i := 1;i <= 100;i++ {
      sum += i
   }
   fmt.Println("the sum is",sum)
}

go语言没有while语句,但是可以通过for语句实现while语句的效果。如下所示定义变量 i 为1,通过for语句判断得出结果。

func main() {
   sum := 0
   i := 1
   for i <= 100 {
      sum += i
      i++
   }
   fmt.Println("the sum is", sum)
}

continue

continue可以跳出本次循环,继续执行下一个循环。

break

break可以跳出整个for循环,哪怕for循环没有执行完,也会强制终止。

func main() {
   sum := 0
   i := 1
   for {
      sum += i
      i++
      if i > 100 {
         break
      }
   }
   fmt.Println("the sum is", sum)
}

上面的例子,for语言没有条件语句,通过与break的配合,也能实现与上面的例子一样的结果。