开发者学堂课程【Go 语言核心编程 - 基础语法、数组、切片、Map: Ccontinue 课堂练习】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/625/detail/9589
continue 课堂练习
练习1
分析一把代码:
for i=0; i<3; i=++[
如果 i==10{
Continue
}
Fmt.println(“i=”,i)
}
结果:1 2 3 4 5 6 7 8 9 11 12
然后输出结果,
其实这个代码特别简单,因为里面是只有一层循环,连副循环都没有
这样分析:
如果 i=0,也就是”i==10”的时候跳出去,这时候结果就等于”i=o”,一直输出到 i=13,但是中间 i=10 不会输出,因为 i=10 的时候就跳出去了。所以结果就是i=1-12 (其中 10,13 不输出)
For i:=0;i<2; i++{
for j;=1;j<4; j++{
If j:==2{
(如果 j:==2 就 continue,但是不等于 2 呢)
Continue;
}
Fmt.println(“i=”,i,”j=”,j)
大家想这个结果是多少
}
}
I=0 J=1
I=0
( i 不能等于 2)
这时候就跳回去了
j++{,输出 j=3,因为 2 不执行,再回来看 j=3 的时候,j++ 变 4,不会输出,然后就整个跳到上一次循环:
于是 I=0 J=1,
I=0
(i不能等于2) j=3
i=1 j=1 ,
i=1
j=3
得出结果。
here:
For i:=0; i<2; i++{
For j:=1 ; j<4; j++{
If j=2{
Continue here
}
Fmt.println(“i=”,i,”j=”,j)
}
}
下一道题用了标签了,这样就更简单了,它的整个逻辑还是 i:=0;i<2; 这边用了continue, 假设没有 continue, 那就是跳出离他最近的循环,这个和 break 是一样的。
但他的 continue 有 here 了,那来看结果: i=0 j=1
直接进去 i=1 j=1, 所以跳到 here 后,整个输出结果是这样:
i=0 j=1
i=1 j=1
下面敲一遍代码:
For i=0; i=2;i++{
For j: =1; j<4;j++{
If j:==2{
Continue;
}
Fmt.println(“i=”,i,”j=”,j)
}
}
结果
I=0 J=1,
I=0 j=3
i=1 j=1 ,
i=1 j=3
和分析的一样.
另一段代码:
这段代码是跳出外层循环,也就是终止本次循环直接到下一次循环:
Here:
For i=0; i<2;j++{
For j: =1; j<4;j++{
If j:==2{
Continue here
}
Fmt.println(“i=”,i,”j=”,j)
}
}
结果:
i=0 j=1
i=1 j=1
完全正确,
两道练习题:
continue 实现打印 1--100 之内的奇数【要求使用 for 循环 +continue】
打代码,新建文件夹 continueexec,再进去新建一个文件 main.go
parkage main
Import”fmt”
Func main(){
//continue 实现打印 1--100 之内的奇数【要求使用 for 循环 +continue】
代码:
For i=1; i<=1oo; i++{
If i%2==0{
Continue
}
Fmt.print1n(“奇数是”,i)
跑一下代码,这样就出来了。
3)从键盘读入个数不确定的整数,并判断读入正数和负数的个数,输入为 0 时结束程序【使用 for 循环,break,continue 完成][ positive 正数,negative ]
也就是要求把个数的正负数统计出来。
代码:
//从键盘读入个数不确定的整数,并判断读入正数和负数的个数,输入为 0 时结束程序
(定两个变量)
var positivecount int
//正数个数
Var negativecount int
//负数个数
Var num int
For{
Fmt.println(“请输入一个整数”)
Fmt.scanln(&num)
If num==0{
Break
推出了,因为输入为 0 时结束程序,就终止这个 for 循环,当然用的是 break,不用 continue,终止 for 循环,看下一环节。
Ifm num>0{
positivecount ++
Continue
//结束本次循环,进入下一次循环
}
If num>0{
negativecount ++
}
Fmt.println(“正数个数是%v,负数个数是%v/n”,positivecount ,negativecount )
先注销再跑一下防止影响
For i=1; i<=1oo; i++{
If i%2==0{
Continue
}
Fmt.print1n(“奇数是”,i)
防止影响
如果先判断大于 0,就进入下一个判断。