【原创】go语言学习(四)流程控制
目录:
1、if else语句块
2、for语句
3、switch语句
if else语句块
1、基本语法
if condition {
//do something
}
if statement; condition {
}
if condition {
//do something
} else if condition {
//do something
} else {
//do something
}
2、练习一
// 奇偶数
func testIf1() {
num := 10
// var num int
// num = 10
if num%2 == 0 {
fmt.Printf("num:%d is even\n", num)
} else {
fmt.Printf("num:%d is odd\n")
}
}
3、练习二
// if.. else if 可赋值
func testIf3() {
// num := 10
// var num int
// num = 10 // if语句块中定义num, num会在语句块中销毁
if num := 11; num%2 == 0 {
fmt.Printf("num %d is even\n", num)
} else {
fmt.Printf("num:%d is odd\n", num)
} // 为空
fmt.Printf("num=%d\n", num)
}
4、练习三
// 方法
func getNum() int {
return 10
} func testIf4() {
// if语句块中定义num, num会在语句块中销毁
if num := getNum(); num%2 == 0 {
fmt.Printf("num %d is even\n", num)
} else {
fmt.Printf("num:%d is odd\n", num)
} // 为空
fmt.Printf("num=%d\n", num)
}
for语句
1、Go语⾔言中只有⼀一种循环 for
for initialisation; condition; post {
}
2、练习一
func testFor1() {
// for块中定义,结束时i销毁
//for i := 1; i <=10 ; i++ {
// fmt.Printf("i=%d\n",i)
//}
// 不销毁
var i int
for i = 1; i <= 10; i++ {
fmt.Printf("i=%d\n", i)
}
fmt.Printf("final:i=%d\n", i)
}
3、练习二
// break 跳出循环 continue
func testFor2() {
var i int
for i = 1; i <= 10; i++ {
if i > 5 {
break
// continue
}
fmt.Printf("i=%d\n", i)
} fmt.Printf("final:i=%d\n", i)
}
4、练习三
// continue结束本次循环,跳到下次循环
func testFor3() {
var i int
for i = 1; i <= 10; i++ {
if i%2 == 0 {
continue
}
fmt.Printf("i=%d\n", i)
} fmt.Printf("final:i=%d\n", i)
}
// 二种写法
func testFor4() {
//var i int
//i = 1;
i := 1
for i <= 10 {
fmt.Printf("i=%d\n", i)
i = i + 2
} fmt.Printf("final:i=%d\n", i)
} // 三种写法
func testFor5() {
//var i int
//i = 1;
i := 1
for i <= 10 {
fmt.Printf("i=%d\n", i)
i = i + 2
} fmt.Printf("final:i=%d\n", i)
}
5、练习四
// 多行赋值
func testMultiSign() {
//var a int
//var b string
//var c int
a, b, c := 10, "hello", 100 fmt.Printf("a=%d b=%s c=%d\n", a, b, c)
} // 多条件for
func testFor6() {
for no, i := 10, 1; i < 10 && no <= 19; i, no = i+1, no+1 {
fmt.Printf("%d * %d = %d", i, no, i*no)
}
}
5、练习五
// 无限循环for
func testFor7() {
for {
fmt.Printf("hello\n")
}
}
switch语句
1、case语句
func testIf() {
var a int = 2
if a == 1 {
fmt.Printf("a=1\n")
} else if a == 2 {
fmt.Printf("a=2\n")
} else if a == 3 {
fmt.Printf("a=3\n")
} else if a == 4 {
fmt.Printf("a=4\n")
} else {
fmt.Printf("a=5\n")
}
}
func testSwitch() {
var a int = 2
switch a {
case 1:
fmt.Printf("a=1\n")
case 2:
fmt.Printf("a=2\n")
case 3:
fmt.Printf("a=3\n")
case 4:
fmt.Printf("a=4\n")
case 5:
fmt.Printf("a=5\n")
default:
fmt.Printf("a=??\n")
}
}
2、写法二
func getValue() int {
return 6
}
// 写法二
func testSwitch2() {
switch a := getValue(); a {
case 1:
fmt.Printf("a=1\n")
case 2:
fmt.Printf("a=2\n")
case 3:
fmt.Printf("a=3\n")
case 4:
fmt.Printf("a=4\n")
case 5:
fmt.Printf("a=5\n")
default:
fmt.Printf("a=??\n")
}
}
3、练习一
func testSwitch3() {
switch a := getValue(); a {
case 1, 2, 3, 4, 5:
fmt.Printf("a>=1 and a<=5\n")
case 6, 7, 8, 9, 10:
fmt.Printf("a>=6 and a<=10\n")
default:
fmt.Printf("a > 10\n")
}
}
4、练习二
func testSwitch4() {
var num = 60
switch {
case num >= 0 && num <= 25:
fmt.Printf("a>=0 and a<=25\n")
case num > 25 && num <= 50:
fmt.Printf("a > 25 and a <=50\n")
case num > 50 && num <= 75:
fmt.Printf("a > 50 and a <= 75\n")
case num > 75 && num <= 100:
fmt.Printf("a > 75 and a <= 100\n")
default:
fmt.Printf("invalid a = %d \n", num)
}
}
5、fallthrough 穿透case块,执行下一个case块
// fallthrough 穿透case块,执行下一个case块,执行代码
func testSwitch5() {
var num = 60
switch {
case num >= 0 && num <= 25:
fmt.Printf("a>=0 and a<=25\n")
case num > 25 && num <= 50:
fmt.Printf("a > 25 and a <=50\n")
case num > 50 && num <= 75:
fmt.Printf("a > 50 and a <= 75\n")
fallthrough
case num > 75 && num <= 100:
fmt.Printf("a > 75 and a <= 100\n")
default:
fmt.Printf("invalid a = %d \n", num)
}
}
6、打印99乘法表
// 打印 99乘法表
func testMulti() {
//1*1=1
//1*2=2 2*2=4
//1*3=3 2*3=6 3*3=9 for i := 1; i < 10; i++ {
for j := 1; j <= i; j++ {
fmt.Printf("%d * %d = %d", j, i, j*i)
}
fmt.Println()
}
}
【原创】go语言学习(四)流程控制的更多相关文章
- Go语言学习笔记-流程控制(二)
Go语言流程控制 字典类型Map 1.上节遗留:map字典类型 变量声明:var myMap map[string] PersonInfo 其中,myMap是变量名,string是键的类型,Perso ...
- GO语言学习——Go语言基础之流程控制一
Go语言基础之流程控制 if else(分支结构) package main import "fmt" // if条件判断 func main(){ // age := 19 // ...
- Go语言基础之流程控制
Go语言基础之流程控制 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”. Go语言中最常用额流程控制有if和for,而switch和goto主要是为了简化代 ...
- Go语言 数据类型,流程控制
Go语言 数据类型,流程控制 人生苦短,Let's Go ! package main // 必须要有一个main包 import "fmt" func main() { fmt. ...
- GO学习-(7) Go语言基础之流程控制
流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的"经脉". Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码. ...
- [原创]Scala学习:流程控制,异常处理
1.流程控制 1)do..while def doWhile(){ var line="" do{ line = readLine() println("readline ...
- 1.4 Go语言基础之流程控制
流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的"经脉". Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码. ...
- 第三章 go语言 程序的流程控制
程序的流程控制主要包括三种不同的结构,分别是顺序结构.选择结构和循环结构. ² 顺序结构最为简单,程序执行时,按照语句的顺序自上而下依次执行. ² 选择结构是根据条件表达式的结果选择执行某些语句. ² ...
- C 碎片四 流程控制
前面介绍了程序中用到的一些基本要素(常量,变量,运算符,表达式),他们是构成程序的基本成分,下面将介绍C语言中流程控制的三种结构:顺序结构.分支结构.循环结构 一.顺序结构 顺序结构的程序设计是最简单 ...
- JavaScript学习笔记——流程控制
javascript流程控制流程:就是程序代码的执行顺序.流程控制:通过规定的语句让程序代码有条件的按照一定的方式执行. 一.顺序结构 按照书写顺序来执行,是程序中最基本的流程结构. 二.选择结构(分 ...
随机推荐
- 多线程使用libcurl
curl默认情况下有两个地方是线程不安全的, 需要特殊处理, 1是curl_global_init 这个函数必须单线程调用, 2是默认多线程调用https会莫名其妙的挂掉, 以下是网上的解决方案 ht ...
- ef core数据迁移的一点小感悟
ef core在针对mysql数据迁移的时候,有些时候没法迁移...有两种情况没法迁移,一种是因为efcore的bug问题导致没法迁移,这个在github上有个问题集,另外一种是对数据表进行较大幅度的 ...
- 【转载】Sqlserver限制最大可使用内存
在Sqlserver的使用过程中,我们会发现随着运行时间的增长,Sqlserver占用的系统也越来越大,查了网上的相关资料说,Sqlserver在查询完相应数据后,为了下一次查询的性能,并不会马上释放 ...
- js循环修改数组属性key值
var keyMap = { deviceUid: "id", deviceType: "typeName", deviceCode: "code&q ...
- js入门之内置数组对象 Array
一. 数组 1. 创建数组的两种方式 1. 数组字面量 var array = [] 2. 数组的构造函数创建数组 var array = new Array(); 2. 如何判断一个变量是否是数组 ...
- ABAP-JCO服务端连接问题
公司网络服务加域,若SAP服务器后端未配置端口号映射,则外部服务器注册JCO服务监听需要调整 # server jco.server.connection_count=5 jco.server.gwh ...
- 铰链joints
Fixed Joint原理像阶层里的父子结构.关节会将对象锁在一个世界坐标或者锁在一个连接的刚体. 固定关节可以设定断裂力道(Break Farce)和断裂扭力(Break torque),破坏关节所 ...
- Django之模型层2
多表操作 创建模型 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对 ...
- TLS握手秘钥套件分析
1.为了弄清楚TLS1.3的内部结构,觉得有必要将TLS的整个结构从新整理一遍,方便后续在做握手协议的形式化分析的时候能够不遗漏每个加密和认证的的环节. TLS1.3不论文在协议内容上还是性能上都较之 ...
- Linux磁盘管理——虚拟文件系统
前言 Linux支持众多文件系统,包括: 传统文件系统:ext2 / minix / MS-DOS / FAT (用 vfat 模块) / iso9660 (光盘)等等:日志式文件系统: ext3 / ...