博客
关于我
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万字总结!超详细!
查看>>
Mysql下载以及安装(新手入门,超详细)
查看>>
MySQL不会性能调优?看看这份清华架构师编写的MySQL性能优化手册吧
查看>>
MySQL不同字符集及排序规则详解:业务场景下的最佳选
查看>>
Mysql不同官方版本对比
查看>>
MySQL与Informix数据库中的同义表创建:深入解析与比较
查看>>
mysql与mem_细说 MySQL 之 MEM_ROOT
查看>>
MySQL与Oracle的数据迁移注意事项,另附转换工具链接
查看>>
mysql丢失更新问题
查看>>
MySQL两千万数据优化&迁移
查看>>
MySql中 delimiter 详解
查看>>
MYSQL中 find_in_set() 函数用法详解
查看>>
MySQL中auto_increment有什么作用?(IT枫斗者)
查看>>
MySQL中B+Tree索引原理
查看>>
mysql中cast() 和convert()的用法讲解
查看>>
mysql中datetime与timestamp类型有什么区别
查看>>
MySQL中DQL语言的执行顺序
查看>>
mysql中floor函数的作用是什么?
查看>>
MySQL中group by 与 order by 一起使用排序问题
查看>>
mysql中having的用法
查看>>