go-控制语句
if else
else不能换行
if后最好不加小括号,当然可以加,但建议不加
求平方根
引入math包
调用math.Sqrt(num)函数
switch分支
不用加break来跳出,每一个case执行完会自动退出switch控制语句
switch key {
case 'a':
println("aaa")
......
defaule:
println("匹配不到会执行我")
}
case后是一个表达式
表达式的数据类型必须与科研一致,否则报错
case后还可以跟多个表达式,用逗号隔开
如果为常亮,所有case后的值不能重复,否则报错
switch后还可不带表达式,类似于if else 分支来使用
i :=10
switch{
case i==10 : ..
case i==20 :
......
default :
println(“没有匹配到”)
}
switch后还可直接声明一个变量,分号结束 不推荐使用
switch穿透
在case后添加fallthrough,则会执行下一个case叫switch穿透
默认只能穿透一层
typestitch
switch还可被用于type-switch来判断interface变量中实际指向的变量类型
switch与if的比较
若判断的具体数值不多,数据类型为整数,浮点数,字符,字符串这几类用switch,简介高效
对区间判断和bool判断用if
for
和if一样可以不加小括号,返回值为bool类型
三种写法
一般写法
省略初始和步长
三者都省略
for ; ; {}是一个无限循环
一般配合break
for-range方便遍历字符串和数组
str = "abc~ok"
for index, val := range str {
fmt.printf("index = "%d, val = %c \n", index, val)
}
因为是按照字符遍历的所以有中文,也ok
而传统的是按字节遍历的,所以须将数组转为切片 eg: str := []rune(str)
go语言中没有while和do-while,可用foe循环来实现
//while
for{
if 循环条件{
break
}
循环操作
变量迭代
}
//do-while
for{
循环操作
变量迭代
if 循环条件{
break
}
}
多重循环
编程两大绝招
先易后难
复杂问题分解为简单问题
先死后活
break跳转语句
随机数
在go中生成随机数要生成一个随机种子,否则返回的数总是固定的
rand.Seed(time.Now().Unix())
fmt.Println("n",rand.Intn(100)+1)
基本功能
终止某个语句块
使用细节
当初现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
lable2 :
for{
for{
break lable2
}
}
lable只是一个标签名
默认会跳出最近的for循环
continue跳转控制
结束本次循环
用法和break一样也可以标签使用
goto跳转语句
无条件跳转到指定行,配合条件语句
if 条件 {
goto lable2
}
...
....
lable2:
....
一般不主张使用
return
跳出所在方法或函数
普通函数
不再执行return后面的语句
main函数
终止main函数,即终止程序
go-控制语句的更多相关文章
- Linux Shell 流程控制语句
* 本文主要介绍一些Linux Shell 常用的流程控制语句* 1. if 条件语句:if-then/if-elif-fi/if- else-fi if [条件判断逻辑1];then command ...
- 使用变量 数据类型转换 逻辑控制语句(begin ...end; case...end; if...else; while)
一:变量 变量分为局部变量和全局变量 (全局变量是系统自定的,是不可手动给值的,若想自己定义全局变量可考虑创建全局临时表!) 局部变量的定义: declare @变量名 数据类型 (局部变量只能 ...
- Sql Server系列:数据控制语句
数据控制语句用来设置.更改用户或角色的权限,包括GRANT.DENY.REVOKE等语句. GRANT用来对用户授予权限,REVOKE可用于删除已授权的权限,DENY用于防止主体通过GRANT获得特定 ...
- 8-04流程控制语句BEGIN ..END
流程控制语句: 是用来控制程序流程的语句. 常用的流程控制语句的分类: 顺序结构:BEGIN...END 分支结构: IF ..ELSE 或CASE ..END 循环结构:WHILE 顺序结构 语法 ...
- javaScript条件控制语句
当某段代码的执行,需要首先满足某些条件时,我们就需要用到条件控制语句.判断条件是否满足,满足条件才去执行某些代码. 如判断数组中值等于条件值时,将这个值从数组中删除 a.switch <scri ...
- JAVA 1.7 流程控制语句 续
1. Java中的循环控制语句一共有3种,分别是while,do… while以及for循环.2. while循环,形式为:while(布尔表达式){//待执行的代码}3. do…while循环,新式 ...
- JAVA 1.6 流程控制语句
1. 条件运算符(三元表达式),其形式为:type d = a ? b : c; 具体化形式为:int d = 2 < 1 ? 3 : 4;2. 轻量级的文本编辑器:UltraEdit.Edit ...
- 20151013 C# 第一篇 流程控制语句
20151013 流程控制语句: 1.选择语句 if … else if...else 选择语句 if(布尔表达式){ 语句块:} if(布尔表达式){ 语句块1:}else{ 语句块2:} i ...
- Python 3 —— 控制语句
控制语句 1.if if <s>: ... elif <s>: ... else: ... 2 for for e in list .. if <s> break; ...
- java基础3_流程控制语句
一 条件判断 1. 条件运算符(三元表达式) ,其形式为: type d = a ? b : c; 具体化形式为:int d = 2 < 1 ? 3 : 4; 2. 轻量级的文本编辑器:Ultr ...
随机推荐
- Web开发跨域问题
什么是域? 协议, ip(域名). 端口 前端:域 后端:域 js 进行跨域请求, 因为浏览器的同源策略,导致了两个不同域请求出错 浏览器 会尝试向后端发送 option 请求, --- ...
- Shape.Type属性名称及对应值列表
在Excel工作表中,有多种Shape类型的时候,可以通过shape.Type属性值返回一个代表形状类型的MsoShapeType数值.通过该数值可知该图形的类型! 列表如下: 名称 值 说明 mso ...
- SpringCloud的入门学习之概念理解、Feign负载均衡入门
1.Feign是SpringCloud的一个负载均衡组件. Feign是一个声明式WebService客户端.使用Feign能让编写Web Service客户端更加简单, 它的使用方法是定义一个接口, ...
- .net Core 使用AutoMapper
在我们的项目中慢慢的要把数据库的实体模型和视图模型进行分离,防止被人拿到我们表字段.在学校的时候自己只是有将很多数据库模型,写成一个视图模型返回到前台. 首先我们把这两个包引入项目中去. 然后我们创建 ...
- gor实现线上HTTP流量复制压测引流
一.使用背景 gor 是一款go语言实现的简单的http流量复制工具,它的主要目的是使你的生产环境HTTP真实流量在测试环境和预发布环境重现.只需要在 代理例如nginx入口服务器上执行一个进程,就可 ...
- C# 中使用 Redis 简单存储
Redis 是一个开源的使用 ANSI C语言编写的支持网络.可基于内存也可持久化的日志型.Key-Value 数据库. 常用它来存储缓存数据,能非常轻松的实现缓存过期刷新机制. 多种语言都可以连接到 ...
- MarkDown使用小技巧
写作目的 笔者看完一些MarkDown入门文字后,发现很多文档对一些容易遇到的细微问题缺少解释.本文意欲稍作补充. 目标读者 使用MarkDown仅为了排版出更好看的文章,而不关注技术细节,不懂HTM ...
- 如何在文本编辑器中实现时间复杂度O(n/m)的搜索功能? BM算法
//字符串匹配 public class StringCmp { //约定:A主串长 n ,B模式串 长m.要求:在A串中找到B串匹配的下标 //BM算法:从B串和A串尾部开始比较,希望一次将B串向后 ...
- Java核心(一)深入理解BIO、NIO、AIO
目标: BIO.NIO.AIO 的区别是什么? 同/异步.阻/非阻塞的区别是什么? 文件读写最优雅的实现方式是什么? NIO 如何实现多路复用功能? 一,IO的介绍: (1)IO的全称其实是:Inpu ...
- mysql索引类型:FULLTEXT、NORMAL、SPATIAL、UNIQUE的详细介绍(转)
Normal 普通索引 表示普通索引,大多数情况下都可以使用 Unique 唯一索引 表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique 约束唯一标识 ...