GO语言学习笔记(七):GO语言流程控制之条件语句与选择语句

分类:
GO
标签:
基础
学习笔记
作者:
何鑫
创作时间:
2019/07/23 16:28:22

摘要:if语句与switch语句

条件语句

1. 单if语句

有这样一个需求:输入一个数字,如果该数字大于小于0,提示:输入数字应不小于0。

package main
import "fmt"

func main()  {

   // 声明一个数字
   var number int
   // 提示信息
   fmt.Print("请输入数字:")
   // 传入变量指针
   fmt.Scanln(&number)
   // if语句
   if number < 0 {
      fmt.Println("输入数字小于0")
   }
   fmt.Println("您输入的数字是:", number)

}

运行该程序,输入数字-1,控制台输出如下:

请输入数字:-1

输入数字小于0

您输入的数字是: -1

注意到了么,是不是与java等语言有所区别,if后是不需要括号的!

2. if...else..

我们在原有需求上再加上一个条件,如果输入数据小于0,我们提示:输入数字小于0,否则提示:输入数字大于0。

package main
import "fmt"

func main()  {

   // 声明一个数字
   var number int
   // 提示信息
   fmt.Print("请输入数字:")
   // 传入变量指针
   fmt.Scanln(&number)
   if number < 0 {
      fmt.Println("输入数字小于0")
   } else {
      fmt.Println("输入数字大于0")
   }
   fmt.Println("您输入的数字是:", number)

}

其实也就多了一个else,运行后输入10:

请输入数字:10

输入数字大于0

您输入的数字是: 10

3. if...else if...else...

我们再加一个条件,如果输入数据小于0,我们提示:数字小于0,否则判断数字是否小于10,小于10就输出:输入数字大于或等于0并且小于10,如果都不满足,就输出:输入数字大于或等于10。

package main
import "fmt"

func main()  {

   // 声明一个数字
   var number int
   // 提示信息
   fmt.Print("请输入数字:")
   // 传入变量指针
   fmt.Scanln(&number)
   if number < 0 {
      fmt.Println("输入数字小于0")
   } else if number < 10 {
      fmt.Println("输入数字大于或等于0并且小于10")
   } else {
      fmt.Println("输入数字大于或等于10")
   }
   fmt.Println("您输入的数字是:", number)

}

运行并输入11:

请输入数字:11

输入数字大于或等于10

您输入的数字是: 11

可以看到除了if后不需要括号,其他与java等编程语言是一致的。

选择语句

GO语言有两种选择语句,分别是switch和select,select主要用于配合通道(channel)的读写操作,这里先不研究。

GO语言的switch语句比较独特。

package main

import "fmt"

func main() {

   number := 1
   
   switch number {
   case 1:
      fmt.Println(1)
   case 2:
      fmt.Println(2)
   case 3:
      fmt.Println(3)
   default:
      fmt.Println("Default")   
   }

}

运行后输出:

1

我们可以看到一个显著的特点是:没有break!

GO语言默认匹配后就会跳出选择语句,不会继续执行,妈妈再也不担心我写漏break啦!

如果我们需要继续向下执行,只需要:加上fallthrough即可:

package main

import "fmt"

func main() {

   number := 1

   switch number {
   case 1:
      fmt.Println(1)
   fallthrough
   case 2:
      fmt.Println(2)
   case 3:
      fmt.Println(3)
   default:
      fmt.Println("Default")
   }

}

运行会打印:

1

2

就会向下执行啦!

switch还支持一个初始化语句,我们还可以直接在switch中初始化变量:

func main() {

   switch number:=1; number {
   case 1:
      fmt.Println(1)
   fallthrough
   case 2:
      fmt.Println(2)
   case 3:
      fmt.Println(3)
   default:
      fmt.Println("Default")
   }

}

区别在于,这个变量只能在该语句之内使用。

发表评论

温馨提示: 评论先审核后发布, 请勿发表不良言论

所有评论