前面我们介绍了三种循环:
- while循环
- foreach循环
- forvalues循环
其中,foreach和forvalues都可以看作是while循环的变种。两者的区别在于foreach跟的对象可以是宏、变量名和文件名等,而forvalues跟的必须是数字。
有时在做一个循环时,会遇到某种情况需要终止
- 中止余下命令,返回到循环开始进行下一轮循环:continue
- 中止全部命令,跳出循环:continue,break
*示例1
clear
forvalues i = 1(1)10 {
disp `i'
if `i' > 5{
continue
}
disp "`i':Hello World"
}
1
1:Hello World
2
2:Hello World
3
3:Hello World
4
4:Hello World
5
5:Hello World
6
7
8
9
10
上面的程序是两个循环,当i大于5时,就中断第二个if循环,只执行第一个forvalues循环。
*示例2
clear
forvalues i = 1(1)10 {
disp `i'
if `i' > 5{
continue,break
}
disp "`i':Hello World"
}
1
1:Hello World
2
2:Hello World
3
3:Hello World
4
4:Hello World
5
5:Hello World
6
和示例1对比,可以看出当i大于5时,执行continue,break,会把两个循环全部中止,跳出循环。
参考资料:
【爬虫俱乐部】精通Stata之数据整理