Go的条件判断语句和跳转关键字break,continue,goto

Link_Biao · · 3556 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

if判断语句
if判断语句的判断条件不用()包裹,可以在判断语句里面初始化判断条件的值,
当判断语句的声明变量和局部变量名称一致时候,执行到判断语句中假设变量命名是if1时,局部变量的命名if1会隐藏,等到判断语句执行完再出现
func tempIf(a int) {
if a > 0 {
f.Println("if is true")
} else {
f.Println("if is false")
}
}

for判断语句
//循环语句只有for,支持三种形式,没有while那些循环语句
//初始化和步进表达式可以是多个值
//条件每次循环都会被重新检查,因此不建议在条件语句中使用函数,尽量提前计算好条件并以常量或者变量代替

func tempFor(a int) {//常用的循环模式
for i := 0; i < 10; i++ {
if a == i {
f.Println("break")
break;
}
}
}

func tempFor1(a int) {
for a!=10{
f.Println("continue")
}
}

func tempFor2(a int) {//类似while
for{
if a>5{
f.Println(a)
break;
}
}
}

switch判断语句
switch语句可以使用任何类型或表达式做条件语句
不需要break,一旦条件成立自动终止
如果希望执行下一个case,使用fallthrough语句
支持一个初始化表达式(可以是并行方式),右侧需跟分号

func tempSwitch(str string) {
switch str {
case "1":
f.Println("str is 1")
fallthrough//关键字,条件成立,依旧执行下一条case,不管下一条条件是否成立
case "2":
f.Println("str is 2")
case "3":
f.Println("str is 3")
}
}

跳转语句,关键字break,goto,continue,作用其实跟java语言的没啥区别,但是在java中goto是保留字段,没有任何意义,但是java中的break和continue的作用跟golang一样,可以跳出或者跳转执行指定的标签,c++中有标签,但是他的break,和continue不能说指定跳出和继续指定的标签,但是他的goto可以实现这个功能,条件成立,跳转到指定 标签的执行语句中

break关键字
LABLE1:
for {
for i := 1; i < 10; i++ {
if i == 4 {
break LABLE1 //跳出定义了标签层
}
}
}
fm.Println("break is over")

goto关键字
for {
for i := 1; i < 10; i++ {
if i == 4 {
goto LABLE2 //调整了执行位置,如果是标签是放在for语句
//之前,又是重新开始执行
}
}
}
LABLE2:
fm.Println("goto is over")

continue关键字
LABLE3:
for i := 1; i < 10; i++ {
for {
fm.Print(i)
continue LABLE3 //继续执行定义了标签层
}
}

自增符号++和自减符号--
他这个跟java语言的还是有区别的,它是作为一个语句,而不是作为一个表达式,他不能放在变量的左边,只能放在右边,譬如
a:=1
//a=a++ 或者++a,这样是错误的
只能a++,因为他是一个语句,同样道理,自减符号也是一样。

fm.Println("continue is over")


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:Link_Biao

查看原文:Go的条件判断语句和跳转关键字break,continue,goto

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3556 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传