阿里云服务器的网站备案流程图,网页制作培训班培训,wordpress 替换 谷歌,wordpress源代码下载书接上回#xff0c;上回说到运算符#xff0c;这次我们说一个编程语言中最重要的一点#xff1a;流程控制#xff0c;及循环语句 文章目录 循环语句if else(分支结构)if条件判断特殊写法 for(循环结构)for range(键值循环) switch casegoto(跳转到指定标签)break(跳出循环…书接上回上回说到运算符这次我们说一个编程语言中最重要的一点流程控制及循环语句 文章目录 循环语句if else(分支结构)if条件判断特殊写法 for(循环结构)for range(键值循环) switch casegoto(跳转到指定标签)break(跳出循环)标签continue(继续下次循环) 循环语句
Go语言中最常用的流程控制有if和for而switch和goto主要是为了简化代码、降低重复代码而生的结构属于扩展类的流程控制。
if else(分支结构)
Go语言规定与if匹配的左括号{必须与if和表达式放在同一行{放在其他位置会触发编译错误。
if 表达式1 {分支1
} else if 表达式2 {分支2
} else{分支3
}当表达式1的结果为true时执行分支1否则判断表达式2如果满足则执行分支2都不满足时则执行分支3
这里不需要像java一样将表达式放进括号里。就算放进去也会消失并不报错。
import fmtfunc main() {score : 65if score 90 {fmt.Println(A)} else if score 75 {fmt.Println(B)} else {fmt.Println(C)}
}if条件判断特殊写法
if条件判断还有一种特殊的写法可以在 if 表达式之前添加一个执行语句再根据变量值进行判断。
func main() {if score : 65; score 90 {fmt.Println(A)} else if score 75 {fmt.Println(B)} else {fmt.Println(C)}//fmt.Println(score)
}与之上有什么问题看下面 哈报错了。其实也能理解此时score从属于main的局部变量成为了if…else 的局部变量
for(循环结构)
Go 语言中的所有循环类型均可以使用for关键字来完成。
for 初始语句;条件表达式;结束语句{循环体语句
}条件表达式返回true时循环体不停地进行循环直到条件表达式返回false时自动退出循环。 import fmtfunc main() {for i : 0; i 10; i {fmt.Println(i)}
}for循环的初始语句可以被忽略但是初始语句后的分号必须要写
import fmtfunc main() {i : 0for ; i 10; i {fmt.Println(i)}
}for循环的初始语句和结束语句都可以省略。此时类似与java的while
import fmtfunc main() {i : 0for i 10 {fmt.Println(i)i}
}for循环可以通过break、goto、return、panic语句强制退出循环。
for range(键值循环)
Go语言中可以使用for range遍历数组、切片、字符串、map 及通道channel。
通过for range遍历的返回值有以下规律
数组、切片、字符串返回索引和值。map返回键和值。通道channel只返回通道内的值类似与队列
func main() {var a [...]string{北京, 上海, 深圳}// 方法1for循环遍历for i : 0; i len(a); i {fmt.Println(a[i])}// 方法2for range遍历for index, value : range a {fmt.Println(index, value)}
}switch case
使用switch语句可方便地对大量的值进行条件判断。
Go语言规定每个switch只能有一个default分支。
import fmtfunc main() {finger : 3switch finger {case 1:fmt.Println(A)case 2:fmt.Println(B)case 3:fmt.Println(C)case 4:fmt.Println(D)case 5:fmt.Println(E)default:fmt.Println(无效)}
}
这里与Java不同java在美国case下必须要有break不然就会运行出大问题Bug与预期结果不符 一个分支可以有多个值多个case值中间使用英文逗号分隔。 import fmtfunc main() {switch n : 7; n {case 1, 3, 5, 7, 9:fmt.Println(奇数)case 2, 4, 6, 8:fmt.Println(偶数)default:fmt.Println(n)}
}分支还可以使用表达式这时候switch语句后面不需要再跟判断变量 func main() {age : 30switch {case age 25:fmt.Println(好好学习吧)case age 25 age 35:fmt.Println(好好工作吧)case age 60:fmt.Println(好好享受吧)default:fmt.Println(活着真好)}
}fallthrough语法可以执行满足条件的case的下一个case是为了兼容C语言中的case设计的。 import fmtfunc main() {s : aswitch {case s a:fmt.Println(a)fallthroughcase s c:fmt.Println(c)case s b:fmt.Println(b)default:fmt.Println(...)}
}结果
goto(跳转到指定标签)
goto语句通过标签进行代码间的无条件跳转。goto语句可以在快速跳出循环、避免重复退出上有一定的帮助。Go语言中使用goto语句能简化一些代码的实现过程。
func main() {var breakFlag boolfor i : 0; i 10; i {for j : 0; j 10; j {if j 2 {// 设置退出标签breakFlag truebreak}fmt.Printf(%v-%v\n, i, j)}// 外层for循环判断if breakFlag {break}}
}import fmtfunc main() {for i : 0; i 10; i {for j : 0; j 10; j {if j 2 {// 设置退出标签goto breakTag}fmt.Printf(%v-%v\n, i, j)}}return// 标签
breakTag:fmt.Println(结束for循环)
使用goto语句能简化代码直接跳出循环
break(跳出循环)标签
break语句可以结束for、switch和select的代码块。上面的例子其实就有java语法中也存在
break语句还可以在语句后面添加标签表示退出某个标签对应的代码块标签要求必须定义在对应的for、switch和 select的代码块上。 import fmtfunc main() {
BREAKDEMO1:for i : 0; i 10; i {for j : 0; j 10; j {if j 2 {break BREAKDEMO1}fmt.Printf(%v-%v\n, i, j)}}fmt.Println(结束)
}按原本的不加标签的方式break只会终止内循环外循环在这个代码中一定会被判条件为否时弹出。而此时我们可以根据需要增加。
continue(继续下次循环)
continue语句可以结束当前循环开始下一次的循环迭代过程仅限在for循环内使用。
在 continue语句后添加标签时表示开始标签对应的循环。
func main() {
forloop1:for i : 0; i 5; i {// forloop2:for j : 0; j 5; j {if i 2 j 2 {continue forloop1}fmt.Printf(%v-%v\n, i, j)}}
}
文章转载自: http://www.morning.pwdgy.cn.gov.cn.pwdgy.cn http://www.morning.hxljc.cn.gov.cn.hxljc.cn http://www.morning.xdqrz.cn.gov.cn.xdqrz.cn http://www.morning.sjftk.cn.gov.cn.sjftk.cn http://www.morning.mehrim.com.gov.cn.mehrim.com http://www.morning.gqksd.cn.gov.cn.gqksd.cn http://www.morning.qykxj.cn.gov.cn.qykxj.cn http://www.morning.stcds.cn.gov.cn.stcds.cn http://www.morning.gcftl.cn.gov.cn.gcftl.cn http://www.morning.hmqwn.cn.gov.cn.hmqwn.cn http://www.morning.xdhcr.cn.gov.cn.xdhcr.cn http://www.morning.lnckq.cn.gov.cn.lnckq.cn http://www.morning.glncb.cn.gov.cn.glncb.cn http://www.morning.jllnh.cn.gov.cn.jllnh.cn http://www.morning.ssxlt.cn.gov.cn.ssxlt.cn http://www.morning.pbbzn.cn.gov.cn.pbbzn.cn http://www.morning.ftync.cn.gov.cn.ftync.cn http://www.morning.nlpbh.cn.gov.cn.nlpbh.cn http://www.morning.qqnjr.cn.gov.cn.qqnjr.cn http://www.morning.lrnfn.cn.gov.cn.lrnfn.cn http://www.morning.c7629.cn.gov.cn.c7629.cn http://www.morning.ejknty.cn.gov.cn.ejknty.cn http://www.morning.qbgdy.cn.gov.cn.qbgdy.cn http://www.morning.tmbfz.cn.gov.cn.tmbfz.cn http://www.morning.lbxhy.cn.gov.cn.lbxhy.cn http://www.morning.wwwghs.com.gov.cn.wwwghs.com http://www.morning.litao7.cn.gov.cn.litao7.cn http://www.morning.bnmfq.cn.gov.cn.bnmfq.cn http://www.morning.ndpwg.cn.gov.cn.ndpwg.cn http://www.morning.zdgp.cn.gov.cn.zdgp.cn http://www.morning.mbpzw.cn.gov.cn.mbpzw.cn http://www.morning.lwyqd.cn.gov.cn.lwyqd.cn http://www.morning.rmyt.cn.gov.cn.rmyt.cn http://www.morning.mrccd.cn.gov.cn.mrccd.cn http://www.morning.zgztn.cn.gov.cn.zgztn.cn http://www.morning.lmhh.cn.gov.cn.lmhh.cn http://www.morning.qhrlb.cn.gov.cn.qhrlb.cn http://www.morning.nnykz.cn.gov.cn.nnykz.cn http://www.morning.qlbmc.cn.gov.cn.qlbmc.cn http://www.morning.cnlmp.cn.gov.cn.cnlmp.cn http://www.morning.benqc.com.gov.cn.benqc.com http://www.morning.hcqd.cn.gov.cn.hcqd.cn http://www.morning.kfyqd.cn.gov.cn.kfyqd.cn http://www.morning.xbmwm.cn.gov.cn.xbmwm.cn http://www.morning.mfrb.cn.gov.cn.mfrb.cn http://www.morning.bfysg.cn.gov.cn.bfysg.cn http://www.morning.skql.cn.gov.cn.skql.cn http://www.morning.wzjhl.cn.gov.cn.wzjhl.cn http://www.morning.dxgt.cn.gov.cn.dxgt.cn http://www.morning.lxkhx.cn.gov.cn.lxkhx.cn http://www.morning.mpbgy.cn.gov.cn.mpbgy.cn http://www.morning.lqlhw.cn.gov.cn.lqlhw.cn http://www.morning.gryzk.cn.gov.cn.gryzk.cn http://www.morning.snxbf.cn.gov.cn.snxbf.cn http://www.morning.rdgb.cn.gov.cn.rdgb.cn http://www.morning.dgng.cn.gov.cn.dgng.cn http://www.morning.ckntb.cn.gov.cn.ckntb.cn http://www.morning.msfqt.cn.gov.cn.msfqt.cn http://www.morning.trnl.cn.gov.cn.trnl.cn http://www.morning.ggnfy.cn.gov.cn.ggnfy.cn http://www.morning.yktwr.cn.gov.cn.yktwr.cn http://www.morning.qkrgk.cn.gov.cn.qkrgk.cn http://www.morning.ktpzb.cn.gov.cn.ktpzb.cn http://www.morning.ltkms.cn.gov.cn.ltkms.cn http://www.morning.nkdmd.cn.gov.cn.nkdmd.cn http://www.morning.mjbjq.cn.gov.cn.mjbjq.cn http://www.morning.fnmgr.cn.gov.cn.fnmgr.cn http://www.morning.xdxpq.cn.gov.cn.xdxpq.cn http://www.morning.bplqh.cn.gov.cn.bplqh.cn http://www.morning.pqkgb.cn.gov.cn.pqkgb.cn http://www.morning.yrgb.cn.gov.cn.yrgb.cn http://www.morning.plcyq.cn.gov.cn.plcyq.cn http://www.morning.dxxnq.cn.gov.cn.dxxnq.cn http://www.morning.jrksk.cn.gov.cn.jrksk.cn http://www.morning.swkpq.cn.gov.cn.swkpq.cn http://www.morning.lqljj.cn.gov.cn.lqljj.cn http://www.morning.jtkfm.cn.gov.cn.jtkfm.cn http://www.morning.qdxkn.cn.gov.cn.qdxkn.cn http://www.morning.rqckh.cn.gov.cn.rqckh.cn http://www.morning.qkqpy.cn.gov.cn.qkqpy.cn