文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Go语言中的条件语句怎么使用

2023-06-30 08:48

关注

这篇文章主要介绍“Go语言中的条件语句怎么使用”,在日常操作中,相信很多人在Go语言中的条件语句怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Go语言中的条件语句怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。

Go 语言提供了以下几种条件判断语句:

语句描述
if 语句if 语句 由一个布尔表达式后紧跟一个或多个语句组成。
if...else 语句if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行
if 嵌套语句你可以在 if 或 else if 语句中嵌入一个或多个 if 或 else if 语句。
switch 语句switch 语句用于基于不同条件执行不同动作。
select 语句select 语句类似于 switch 语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。

if语句

if 语句由布尔表达式后紧跟一个或多个语句组成。

语法

Go 编程语言中 if 语句的语法如下:

if 布尔表达式 { }

If 在布尔表达式为 true 时,其后紧跟的语句块执行,如果为 false 则不执行。

实例

使用 if 判断一个数变量的大小:

package main  import "fmt"  func main() {      var a int = 10        if a < 20 {              fmt.Printf("a 小于 20\n" )   }   fmt.Printf("a 的值为 : %d\n", a)}

以上代码执行结果为:

a 小于 20 a 的值为 : 10

if...else 语句

if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。

语法

Go 编程语言中 if...else 语句的语法如下:

if 布尔表达式 { } else { }

If 在布尔表达式为 true 时,其后紧跟的语句块执行,如果为 false 则执行 else 语句块。

实例

使用 if else 判断一个数的大小:

package main  import "fmt"  func main() {      var a int = 100;        if a < 20 {              fmt.Printf("a 小于 20\n" );   } else {              fmt.Printf("a 不小于 20\n" );   }   fmt.Printf("a 的值为 : %d\n", a);  }

以上代码执行结果为:

a 不小于 20 a 的值为 : 100

if 语句嵌套

你可以在 if 或 else if 语句中嵌入一个或多个 if 或 else if 语句。

语法

Go 编程语言中 if...else 语句的语法如下:

if 布尔表达式 1 { if 布尔表达式 2 { } }

你可以以同样的方式在 if 语句中嵌套 else if...else 语句

实例

嵌套使用 if 语句:

package main  import "fmt"  func main() {      var a int = 100   var b int = 200        if a == 100 {              if b == 200 {                    fmt.Printf("a 的值为 100 , b 的值为 200\n" );       }   }   fmt.Printf("a 值为 : %d\n", a );   fmt.Printf("b 值为 : %d\n", b );}

以上代码执行结果为:

a 的值为 100 , b 的值为 200 a 值为 : 100 b 值为 : 200

switch 语句

switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上至下逐一测试,直到匹配为止。

switch 语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加 break。

switch 默认情况下 case 最后自带 break 语句,匹配成功后就不会执行其他 case,如果我们需要执行后面的 case,可以使用 fallthrough 。

语法

Go 编程语言中 switch 语句的语法如下:

switch var1 { case val1: ... case val2: ... default: ... }

变量 var1 可以是任何类型,而 val1 和 val2 则可以是同类型的任意值。类型不被局限于常量或整数,但必须是相同的类型;或者最终结果为相同类型的表达式。

您可以同时测试多个可能符合条件的值,使用逗号分割它们,例如:case val1, val2, val3。

流程图:

Go语言中的条件语句怎么使用

实例

package main  import "fmt"  func main() {      var grade string = "B"   var marks int = 90     switch marks {      case 90: grade = "A"      case 80: grade = "B"      case 50,60,70 : grade = "C"      default: grade = "D"    }     switch {      case grade == "A" :         fmt.Printf("优秀!\n" )         case grade == "B", grade == "C" :         fmt.Printf("良好\n" )           case grade == "D" :         fmt.Printf("及格\n" )           case grade == "F":         fmt.Printf("不及格\n" )      default:         fmt.Printf("差\n" );   }   fmt.Printf("你的等级是 %s\n", grade );     }

以上代码执行结果为:

优秀! 你的等级是 A

Type Switch

switch 语句还可以被用于 type-switch 来判断某个 interface 变量中实际存储的变量类型。

Type Switch 语法格式如下:

switch x.(type){ case type: statement(s); case type: statement(s); default: statement(s); }

实例

package main  import "fmt"  func main() {   var x interface{}         switch i := x.(type) {      case nil:          fmt.Printf(" x 的类型 :%T",i)                     case int:          fmt.Printf("x 是 int 型")                           case float64:         fmt.Printf("x 是 float64 型")               case func(int) float64:         fmt.Printf("x 是 func(int) 型")                           case bool, string:         fmt.Printf("x 是 bool 或 string 型" )           default:         fmt.Printf("未知型")      } }

以上代码执行结果为:

x 的类型 :<nil>

fallthrough

使用 fallthrough 会强制执行后面的 case 语句,fallthrough 不会判断下一条 case 的表达式结果是否为 true。

实例

package main  import "fmt"  func main() {      switch {    case false:            fmt.Println("1、case 条件语句为 false")            fallthrough    case true:            fmt.Println("2、case 条件语句为 true")            fallthrough    case false:            fmt.Println("3、case 条件语句为 false")            fallthrough    case true:            fmt.Println("4、case 条件语句为 true")    case false:            fmt.Println("5、case 条件语句为 false")            fallthrough    default:            fmt.Println("6、默认 case")    }}

以上代码执行结果为:

case 条件语句为 true 3、case 条件语句为 false 4、case 条件语句为 true

从以上代码输出的结果可以看出:switch 从第一个判断表达式为 true 的 case 开始执行,如果 case 带有 fallthrough,程序会继续执行下一条 case,且它不会去判断下一个 case 的表达式是否为 true。

select 语句

select 是 Go 中的一个控制结构,类似于用于通信的 switch 语句。每个 case 必须是一个通信操作,要么是发送要么是接收。

select 随机执行一个可运行的 case。如果没有 case 可运行,它将阻塞,直到有 case 可运行。一个默认的子句应该总是可运行的。

语法

Go 编程语言中 select 语句的语法如下:

select {    case communication clause  :       statement(s);          case communication clause  :       statement(s);        default :        statement(s);}

以下描述了 select 语句的语法:

否则:

实例

select 语句应用演示:

package main  import "fmt"  func main() {   var c1, c2, c3 chan int   var i1, i2 int   select {      case i1 = <-c1:         fmt.Printf("received ", i1, " from c1\n")      case c2 <- i2:         fmt.Printf("sent ", i2, " to c2\n")      case i3, ok := (<-c3):  // same as: i3, ok := <-c3         if ok {            fmt.Printf("received ", i3, " from c3\n")         } else {            fmt.Printf("c3 is closed\n")         }      default:         fmt.Printf("no communication\n")   }   }

以上代码执行结果为:

no communication

校内举办跑步比赛,10s内进去比赛,分性别,进入男子组,女子组

package main  import "fmt"  //if语句嵌套//校内举办跑步比赛,10s内进去比赛,分性别,进入男子组,女子组func main() {    var (        a = 9        b = "男"    )    if a < 10 && b == "男" {        fmt.Println("进去决赛")        fmt.Println("进入男子")    }    if a < 10 && b == "女" {        fmt.Println("进去决赛")        fmt.Println("进入女子组")    }    if a > 10 {        fmt.Println("滚")    }      }  //switch语句,对学生成绩进行考评,90-100:优秀,80-89:良好,60-79及格,60以下,不及格package main  import "fmt"  func main() {      var vaule = 1      switch vaule {    case 1:        fmt.Println("1")      case 2:        fmt.Println("2")      case 3:        fmt.Println("3")    default:        fmt.Println("滚犊子")    }      }

到此,关于“Go语言中的条件语句怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯