《61396-Go语言程序设计项目化教程(微课版)2.4 循环控制.pptx》由会员分享,可在线阅读,更多相关《61396-Go语言程序设计项目化教程(微课版)2.4 循环控制.pptx(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、循环控制循环控制for循环break语句01.02.目录03.continue语句04.goto跳出循环01for循环for循环语法几种循环方式for和rangeGo语言中的循环逻辑通过for关键字实现Go语言没有while关键字,不存在while循环for循环可以执行指定循环次数,从而让程序多次执行相同的代码块for循环用的最多的地方是:遍历数组或切片等Go语言中的循环for循环三种方式常见的for循环,在指定条件下运行,支持初始化语句条件表达式控制循环:当满足条件时会进入循环。进入循环后,当条件不满足时会跳出循环。无限循环:不断的执行程序,也称作死循环,通常会配合break关键字进行使用。
2、1forfor循环循环语法详解for init;condition;post expressionfor循环语法init:一般为赋值表达式,给控制变量赋初值condition:关系表达式或逻辑表达式,循环控制条件post:一般为赋值表达式,给控制变量增量或减量判别赋值表达式 init 是否满足给定 condition 条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行 post,进入第二次循环,再判别 condition;否则判断 condition 的值为假,不满足条件,就终止for循环,执行循环体外语句1forfor循环循环package mainimport fmtfunc m
3、ain()/*for 初始化条件;判断条件;条件变化 1+2+100累加 */sum:=0 for i:=1;i=100;i+sum+=i fmt.Println(sum=,sum)运行结果为:sum=50501forfor循环循环package mainfunc main()s:=abc for i,n:=0,len(s);i 0 fmt.Println(sn-1)n-运行结果为:9998971forfor循环循环package mainimport fmtfunc main()s:=abc for fmt.Println(s)运行结果为:abcabc.package mainfunc le
4、ngth(s string)int println(call length.)return len(s)func main()s:=abcd for i,n:=0,length(s);i n;i+println(i,si)运行结果为:call length.0 971 982 993 1001forfor循环循环for condition|(init;condition;increment)|Range for condition|(init;condition;increment)|Range statement(s)statement(s)for循环嵌套package mainimport
5、 fmtfunc main()var i,j int for i=2;i 100;i+for j=2;j (i/j)fmt.Printf(%d是素数t,i)运行结果为:2是素数3是素数5是 素 数7是素数11是素数 13是 素 数17是素数 19是素数 23是 素 数29是素数 31是素数 37是 素 数41是素数 43是素数 47是 素 数53是素数 59是素数 61是 素 数67是素数 71是素数 73是 素 数79是素数 83是素数 89是 素 数97是素数1forfor循环循环for true statement(s)for无限循环package mainimport fmtfunc
6、main()for true fmt.Printf(这是无限循环。n);循环中条件语句永远不为 false 则会进行无限循环通常会配合跳出语句,以避免死循环的情况运行结果为:这是无限循环。这是无限循环。这是无限循环。.1forfor循环循环Go 语言中 range 关键字用于for循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引值,在集合中返回 key-value 对的 key 值。范围(range)for key,value:=range oldMap newMapkey=valuefor循环语法其中key 和 v
7、alue 是可以省略省略前面的key时,使用_占位省略后面的value时,使用_占位或直接空着1forfor循环循环package mainimport fmtfunc main()str:=abcd /迭代打印每个元素,默认返回两个值:元素索引,元素键值 for index,value:=range str fmt.Printf(str%d=%cn,index,value)运行结果为:str0=astr1=bstr2=cstr3=d1forfor循环循环package mainimport fmtfunc main()str:=abcd /第一个返回值使用_忽略,只返回元素 for _,va
8、lue:=range str fmt.Println(value)运行结果为:9798991001forfor循环循环package mainimport fmtfunc main()str:=abcd /第二个返回值使用_忽略,只返回元素索引 for index,_:=range str fmt.Printf(str%d=%cn,index,strindex)运行结果为:str0=astr1=bstr2=cstr3=d1forfor循环循环func BubblingSort(arr int)fmt.Println(排序前:,arr)/总结规律:先内层(每一轮)再外层,内层n-1-i次,外层n
9、-1for i:=0;i len(arr)-1;i+for j:=0;j arrj+1 temp:=arrjarrj=arrj+1arrj+1=tempfmt.Println(排序后:,arr)func main()slice:=int8,6,50,16,10BubblingSort(slice)fmt.Println(slice)运行结果为:排序前:8 6 50 16 10排序后:6 8 10 16 506 8 10 16 50for循环实现冒泡排序思考将代码中的切片改成数组结果会有什么变化?1forfor循环循环02break语句break作用break语句可以用来结束for循环无论for
10、循环还有几次执行,立即停止可以在break语句后面添加标签,表示退出标签对应的代码块逻辑break语句如果不带标签,则默认跳出最内层的for循环break语句作用2breakbreak语句语句package mainimport fmtfunc main()for i:=0;i 5 fmt.Println(i5:,i)break fmt.Println(i)运行结果为:012345i5:603continue语句continue作用continue 语句 有点像 break 语句。但是 continue 不是跳出循环,而是跳过当前循环执行下一次循环语句for 循环中,执行 continue 语
11、句会触发 for 增量语句 increment 的执行在多重循环中,可以用标签 label 标出想 continue 的循环continue语句作用3continuecontinue语句语句package mainimport fmtfunc main()for i:=0;i 10;i+if i=3 fmt.Println(i=3:,i)continue fmt.Println(i)运行结果为:012i=3:345678904goto语句goto作用goto 语句可以无条件地转移到过程中指定的行goto 语句通常与条件语句配合使用。可用来实现条件转移,构成循环,跳出循环体等功能在结构化程序设计中一般不主张使用 goto 语句,以免造成程序流程的混乱,使理解和调试程序都产生困难goto语句作用4gotogoto语句语句package mainimport fmtfunc main()fmt.Println(1)goto next fmt.Println(2)next:fmt.Println(3)运行结果为:13使用goto跳转到next标签指定的行谢谢观看谢谢观看