go语言中间的循环
在Go语言中只有很少的几个控制结构,它没有while或者do-while循环。
但是它有for、switch、if。而且switch接受像for那样可选的初始化语句。下面来认识一下他们
一、if语句
Go语言中的if像下面这个样子:
if x > 0 {
return y
} else {
return x
}
一般不需要加圆括号,不过,如果你写上,也是没有问题的(亲测,写上圆括号也可以的~~)。比如:

if (3>2) {
fmt.Println("test if")
}else if true {
fmt.Println("test else if")
}else{
fmt.Println("test else")
}
//输出 test if

二、switch语句
Go的switch非常灵活。表达式不必是常量或整数。
而在java中switch后面的括号里面只能放int类型的值,注意是只能放int类型,但是放byte,short,char类型的也可以,
那是因为byte,short,shar可以自动提升(自动类型转换)为int,也就是说,你放的byte,short,shar类型,然后他们会自动转换为int类型(宽化,自动转换并且安全),
其实最后放的还是int类型!
switch语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加break(又跟java不一样哦!)

func switchFuncString(a string) {
//字符串
switch a {
case "test1":
fmt.Println("test1")
case "test2", "test3":
fmt.Println("testOhter")
default:
fmt.Println("NoTest")
}
}
func switchFuncInt(a int) {
//数字
switch a {
case 1:
fmt.Println("1")
case 2:
fmt.Println("2")
case 3:
fmt.Println("3")
}
}
func switchFuncBool(c byte) {
//switch后面什么都没有?它会匹配true
switch {
case '0' <= c && c <= '9':
fmt.Println(c - '0')
case 'a' <= c && c <= 'f':
fmt.Println( c - 'a' + 10)
case 'A' <= c && c <= 'F':
fmt.Println( c - 'A' + 10)
}
}

但是如果,你就希望匹配之后,继续匹配下面一条怎么办呢?还是有办法的,使用“fallthrough”即可,例如:

func switchFuncInt(a int) {
//数字
switch a {
case 1:
fmt.Println("1")
fallthrough
case 2:
fmt.Println("2")
case 3:
fmt.Println("3")
}
}

调用switchFuncInt(1),打印出1和2来。
三、for循环
Go语言的For循环油3中形式,只有其中的一种使用分号。
- for init; condition; post { } 和C 的for 一样
- for condition { } 和while 一样
- for { } 和C 的for(;;) 一样(死循环)
直接上代码~~

package main
import "fmt"
func main() {
simpleFor()
var test string = "asdfghjkl"
fmt.Println(reverse([]byte(test)))
}
//打印0~9
func simpleFor() {
for i := 0; i < 10; i++ {
fmt.Println(i)
}
}
// Reverse a
func reverse(a []byte) string {
//由于Go没有逗号表达式,而++和--是语句而不是表达式,
//如果你想在for中执行多个变量,应当使用平行赋值。
for i, j := 0, len(a)-1; i < j; i, j = i+1, j-1 {
a[i], a[j] = a[j], a[i]
}
return string(a)
}

分支、循环是很基础的东西,所以有必要多练练手~~
下面来做两个题目玩玩~~
1. 创建一个基于for的简单的循环。使其循环10次,并且使用fmt 包打印出计数器的值。
2. 用goto改写1的循环。保留字for不可使用。
3. 再次改写这个循环,使其遍历一个array,并将这个array打印到屏幕上。
代码:
go语言中间的循环的更多相关文章
- C语言-for循环
for循环是C语言中的循环语句之一,它的一般形式为for(初值,条件表达式,步长){语句};初值通常是一个赋值语句, 它用来给循环控制变量赋初值: 条件表达式是一个关系表达式, 它决定什么时候退出循环 ...
- 怎么绘制C语言选择和循环语句的思维导图
C语言是一门非常基础的计算机语言,是大部分本科学生的公共专业,在C语言的学习中,选择和循环语句是至关重要的部分,利用思维导图可以有效节约时间并加深知识点记忆. 接下来就为大家介绍一下我用iMindMa ...
- C语言利用for循环打印菱形
C语言利用for循环打印菱形(高度为奇数) 这次用的方法是上下部分分开打印,先打印上部分,再打印下部分. 先举个简单的例子打印,再改进代码,登堂入室从而理解. 例:打印一个高度(高度必须为奇数)为 5 ...
- [08 Go语言基础-for循环]
[08 Go语言基础-for循环] 循环 循环语句是用来重复执行某一段代码. for 是 Go 语言唯一的循环语句.Go 语言中并没有其他语言比如 C 语言中的 while 和 do while 循环 ...
- JS脚本语言里的循环
js脚本语言: 循环:(循环操作某一个功能(执行某段代码)) 四要素: 循环初始值 循环条件 状态改变 循环体 for(穷举 迭代) while 举例:(穷举) 与7相关的数 <scr ...
- 电脑小白学习软件开发-C#语言基础之循环重点讲解,习题
写代码也要读书,爱全栈,更爱生活.每日更新原创IT编程技术及日常实用视频. 我们的目标是:玩得转服务器Web开发,搞得懂移动端,电脑客户端更是不在话下. 本教程是基础教程,适合任何有志于学习软件开发的 ...
- [转] Lisp语言:Do循环的使用
转自http://blog.csdn.net/keyboardota/article/details/8240250 有关Lisp语言中的Do循环,就像很多人说的一样,初看起来太奇怪了,不知道怎么理解 ...
- C语言中的循环语句练习
注:练习题目均出自<明解C语言 入门篇> 一.do语句 1,求多个整数的和及平均值 #include<stdio.h> int main(void) { ; //和 ; //整 ...
- C/C++——C语言跳出多重循环方法
c语言的break语句只能跳出离它最近的一层循环,但是我们有时候需要跳出多层循环,以下有几种跳出多重循环的方法: 1. 使用goto ; i < MAX1; i++) { ; j < MA ...
随机推荐
- Codeforces Round #337 Alphabet Permutations
E. Alphabet Permutations time limit per test: 1 second memory limit per test: 512 megabytes input: ...
- SharePoint自动化系列——Select-option标签的定位方法总结
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ C#中通过Selenium定位页面上的select-option结构,尝试了以下几种方法,均没有生 ...
- ceil floor函数
> a=6.4> b=math.ceil(a)> print(b)7> c=math.floor(a)> print(c)6 ceil向上取整 floor向下取整
- 华东交通大学2016年ACM“双基”程序设计竞赛 1007
Problem Description ACM小学妹在今天的暑假训练结束后,想看球赛放松一下.当他打开电脑时查询到联盟今天直播N场球赛,每场球赛的起止时间(S1,E1),(S2,E2),...,(SN ...
- JqueryEasyUI 解决IE下datagrid无法刷新的问题
问题描述: 在使用JqueryEasyUI 时,发现在IE下$('#table').datagrid('reload');无效,数据并没有被刷新,究其原因,是因为刷新时,datagrid请求的url没 ...
- Jenkins构建Git manager服务器的源码
1,下载scm manager 源码库管理,下载后解压即可: 2,运行bin目录下的scm-server.bat文件,启动服务: 3,建议将scm-server放在git客户端的安装目录下,方便管理 ...
- P1119 灾后重建
题目背景 B地区在地震过后,所有村庄都造成了一定的损毁,而这场地震却没对公路造成什么影响.但是在村庄重建好之前,所有与未重建完成的村庄的公路均无法通车.换句话说,只有连接着两个重建完成的村庄的公路才能 ...
- OS: 剪裁UIImage部分不规则区域
首先,我们需要把图片展示在界面上.很简单的操作,唯一需要注意的是由于CGContextDrawImage会使用Quartz内以左下角为(0,0)点的坐标系,所以需要使用CGContextTransla ...
- 预编译那些事#define后面只跟一个“参数”
一般情况下,源程序中所有的行都参加编译.但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”.有时,希望当满足某条件时对一组语句进行编译,而当条 ...
- 使用Hibernate框架,新增数据后如何返回新增数据的全部信息
一.需求描述:一个修改事物(TRANSACTION)先后包括子事物修改和子事物新增,修改事物完成后返回其子事物新增的全部数据 二.实现:若实现修改对象后还需要新增一个新对象,并返回新对象的需求,保存 ...