博客
关于我
go的双分支控制
阅读量:173 次
发布时间:2019-02-28

本文共 2295 字,大约阅读时间需要 7 分钟。

Go语言基础教程

一 基本语法

条件判断

在Go语言中,条件判断的语法结构如下:

if 条件表达式 {    执行代码块1} else {    执行代码块2}
  • 条件表达式:用来判断是否满足某个条件的表达式。
  • 执行代码块1:当条件表达式成立时执行。
  • 执行代码块2:当条件表达式不成立时执行。
  • {}:是必须的,表示代码块的开始和结束。

说明

当条件表达式成立时,程序会执行代码块1;否则,程序会执行代码块2。双分支结构只能执行其中一个代码块。


二 实战

1. Requirements

编写一个程序,输入人的年龄。如果年龄大于18岁,输出“你年龄大于18,需要对自己的行为负责!”;否则,输出“你的年龄不大这次放过你了。”

2. Code

package mainimport (    "fmt")func main() {    var age int    fmt.Println("请输入年龄:")    fmt.Scanln(&age)    if age > 18 {        fmt.Println("你年龄大于18~....")    } else {        fmt.Println("你的年龄不大这次放过你了")    }}

3. 测试结果

  • 输入年龄:19
  • 输出:你年龄大于18~....

三 双分支的流程图及分析总结

1. 流程图

从流程图中可以看出,条件表达式是 age > 18。程序会根据条件判断的结果执行相应的代码块:

  • 执行代码块1:输出“你年龄大于18~....”。
  • 执行代码块2:输出“你的年龄不大这次放过你了”。

2. 双分支的总结

  • 条件表达式age > 18
  • 代码块1:执行 fmt.Println("你的年龄大于18")
  • 代码块2:执行 fmt.Println("你的年龄不大....")
  • 特点:双分支只会执行其中一个分支。

四 单分支和双分支的案例

1. 代码测试

package mainimport "fmt"func main() {    var x int = 4    var y int = 1    if x > 2 {        if y > 2 {            fmt.Println(x + y)        }        fmt.Println("hello")    } else {        fmt.Println("x is ", x)    }}
  • 测试结果:hello

2. 代码测试

package mainimport "fmt"func main() {    var x int = 4    if x > 2 {        fmt.Println("ok")    } else {        fmt.Println("hello")    }}
  • 编译错误:原因是 else 不能换行。

3. 代码测试

package mainimport "fmt"func main() {    var x int = 4    if x > 2 {        fmt.Println("ok")    } else {        fmt.Println("hello")    }}
  • 测试结果:ok
  • 编译错误:原因是没有 {}

4. 代码测试

package mainimport "fmt"func main() {    var x int = 4    if x > 2 {        fmt.Println("ok")    } else {        fmt.Println("hello")    }}
  • 测试结果:ok
  • 说明:虽然正确,但要求写成 if x > 2

5. 编写程序

package mainimport "fmt"func main() {    var n1 int32 = 10    var n2 int32 = 50    if n1 + n2 >= 50 {        fmt.Println("hello,world")    }}
  • 测试结果:hello,world

6. 编写程序

package mainimport "fmt"func main() {    var n3 float64 = 11.0    var n4 float64 = 17.0    if n3 > 10.0 && n4 < 20.0 {        fmt.Println("和=", (n3 + n4))    }}
  • 测试结果:和= 28

7. 编写程序

package mainimport "fmt"func main() {    var num1 int32 = 10    var num2 int32 = 5    if (num1 + num2) % 3 == 0 && (num1 + num2) % 5 == 0 {        fmt.Println("能被3又能被5整除")    }}
  • 测试结果:能被3又能被5整除

8. 编写程序

package mainimport "fmt"func main() {    var year int = 2020    if (year % 4 == 0 && year % 100 != 0) || year % 400 == 0 {        fmt.Println(year, "是闰年~")    }}
  • 测试结果:2020 是闰年~

转载地址:http://ofhj.baihongyu.com/

你可能感兴趣的文章
MySQL底层概述—4.InnoDB数据文件
查看>>
MySQL底层概述—5.InnoDB参数优化
查看>>
MySQL底层概述—6.索引原理
查看>>
MySQL底层概述—7.优化原则及慢查询
查看>>
MySQL底层概述—8.JOIN排序索引优化
查看>>
MySQL底层概述—9.ACID与事务
查看>>
Mysql建立中英文全文索引(mysql5.7以上)
查看>>
mysql建立索引的几大原则
查看>>
Mysql建表中的 “FEDERATED 引擎连接失败 - Server Name Doesn‘t Exist“ 解决方法
查看>>
MySQL开源工具推荐,有了它我卸了珍藏多年Nactive!
查看>>
MySQL异步操作在C++中的应用
查看>>
MySQL引擎讲解
查看>>
Mysql当前列的值等于上一行的值累加前一列的值
查看>>
MySQL当查询的时候有多个结果,但需要返回一条的情况用GROUP_CONCAT拼接
查看>>
MySQL必知必会(组合Where子句,Not和In操作符)
查看>>
MySQL必知必会总结笔记
查看>>
MySQL快速入门
查看>>
MySQL快速入门——库的操作
查看>>
mysql快速复制一张表的内容,并添加新内容到另一张表中
查看>>
mysql快速查询表的结构和注释,字段等信息
查看>>