例1:“火柴棒问题”,代码如下,要求只能增、改其中的一个字符,而可以输出20个"-"
var n:int = 20;
for (var i = 0; i < n; i--)
trace("-");
解:
1)将条件表达式i<n,改成-i<n或i+n;
2)将增量i--,改成n--.
例2:
int i = 0;
for (i++; i++ < 10; i++)
trace(++i);
解:3/6/9
例3:
int i = 0;
for (i++; i++ < 10; i++) ;
trace(++i);
解:13
例4:
var i:int =0;
var j:int =5;
for (;i = j;)
trace("i="+(i++), "j="+(j++));
解:
i=5 j=5
i=4 j=4
i=3 j=3
i=2 j=2
i=1 j=1
例5:
var i:int =0;
for (trace("a"); i < 3; trace("b"))
{
trace("c");
i++;
}
解:a/c/b/c/b/c/b
ps:
1)初始值部分只执行一次;
2)条件表达式部分只认true or false,是赋值符号还是连等符号?是赋值符号的话,表达式的值为0的时候等价于false,就该跳出循环;
3)增量部分,是在循环体执行完了之后执行;
4)for(;;)后面有没有分号?
5)i++和++i我就不说了,他们看起来像“我艹”和“艹我”.