循环语句
有其他编程语言基础的可以跳过本章节
循环,指的是在某种条件成立的情况下重复的执行一片代码段。
while 循环语句
while(判断条件)
{
判断条件成立时重复执行的代码段
}
判断条件可以是任何表达式,任何非零、或非空(null)的值均为true,当判断条件为假false时,循环结束。
例子:
function main(parm)
{
var a = 10;
while(a > 8)
{
print "a = " + a;
a -= 1;
print "a - 1 = " + a;
}
print "while end a = " + a;
}
结果:
a = 10;
a - 1 = 9
a = 9;
a - 1 = 8
while end a = 8;
do/while 循环语句
do/while 循环是 while 循环的变体。该循环会在检查条件是否为真之前执行一次代码块,然后如果条件为真的话,就会重复这个循环。
do
{
判断条件成立时重复执行的代码段
}
while(判断条件);
例子:
function main(parm)
{
var a = 10;
do
{
print "a = " + a;
a -= 1;
print "a - 1 = " + a;
}
while(a > 8);
print "do while end a = " + a;
}
结果:
a = 10;
a - 1 = 9
a = 9;
a - 1 = 8
do while end a = 8;
看结果do/while和while没有区别,我们再通过一个。
function main(parm)
{
var a = 10;
while(a > 10) //注意,这次是大于10
{
print "a = " + a;
a -= 1;
print "a - 1 = " + a;
}
print "while end a = " + a;
print "============================";
a = 10;
do
{
print "a = " + a;
a -= 1;
print "a - 1 = " + a;
}
while(a > 10);
print "do while end a = " + a;
}
结果:
while end a = 10;
while end a = 10;
a = 10
a - 1 = 9
do while end a = 9
while先判断条件,a > 10为false,所以没有进循环,而do/while先进一次循环才判断条件。
for 循环语句
for循环的作用和while,do/while相似,只是语句写法上不同。但是for循环的使用频率在你编码的过程中肯定高于前两种。
for(语句1 ; 判断条件 ; 语句2)
{
判断条件成立时重复执行的代码段
}
进入循环之前:语句1先执行,且只会被执行一次。
进入循环后:判断条件 -> 判断条件成立时重复执行的代码段 -> 语句2 -> 判断条件 -> 判断条件成立时重复执行的代码段 -> 语句2 ….一直循环
例子:
function main(parm)
{
for(var a = 10 ; a > 8 ; a--)
{
print "for a = " + a;
}
print "for end a = " + a;
}
结果:
for a = 10
for a = 9
for end a = 8
break 语句
break 语句用于跳出循环。对于三种循环语句通用
例子:
function main(parm)
{
for(var a = 10 ; a > 7 ; a--)
{
if(a == 9)
{
print "for a == 10 is true,break";
break;
}
print "for a = " + a;
}
print "for end a = " + a;
}
结果:
for a = 10
for a == 9 is true,break
for end a = 9
可以看出当遇到break时候直接结束了整个循环的执行。
conitnue 语句
conitnue 语句用于结束本次循环。对于三种循环语句通用
例子:
function main(parm)
{
for(var a = 10 ; a > 7 ; a--)
{
if(a == 9)
{
print "for a == 10 is true,conitnue";
conitnue;
}
print "for a = " + a;
}
print "for end a = " + a;
}
结果:
for a = 10
for a == 9 is true,conitnue
for a = 8
for end a = 7
可以看出当遇到continue时候直接结束了a==9这一次的循环,整个循环还在继续。
foreach 与 foreach_reverse
foreach和foreach_reverse是一个特殊的循环语句,用来对容器所管理的元素进行遍历,目前支持Array,Map,List。会在容器章节详细讲解。
foreach为正序遍历foreach_reverse为倒序遍历。
foreach(key,value : 容器对象)
{
循环语句
}
例子:
function main(parm)
{
var array = [1,2,3];
print "foreach:";
foreach(k,v : array)
{
print "k:" + k + ",v=" + v;
}
print "foreach_reverse:";
foreach_reverse(k,v : array)
{
print "k:" + k + ",v=" + v;
}
}
结果:
foreach:
k:0,v=1
k:1,v=2
k:2,v=3
foreach_reverse:
k:2,v=3
k:1,v=2
k:0,v=1
foreach_del 语句用来在foreach循环中删除当前节点,foreach循环中不支持使用容器对象其他方法来删除元素
例子:
function main(parm)
{
var array = [1,2,3];
foreach(k,v : array)
{
if(v == 2)
{
foreach_del;
break;
}
}
print "foreach_reverse:";
foreach_reverse(k,v : array)
{
print "k:" + k + ",v=" + v;
}
}
结果:
foreach_reverse:
k:1,v=3
k:0,v=1
多线程下,foreach语句中如果包含了foreach_del语句,则需要开发者加同步锁,否则在多个线程同时遍历对象时会抛出异常。