for循环的格式为:
for(【初始化表达式】;【条件表达式】;【迭代表达式 】)
{
          //语句块
}

其中:【初始化表达式】;【条件表达式】;【迭代表达式 】都是可选的,【条件表达式】必须是一个布尔表达式。

执行步骤为:
第一步:开始执行初始化表达式,只执行一次。
第二步:开始执行条件表达式(若为空,则返回true),若为true,则执行大括号中的语句;若为false,则直接跳到for的结束点。
第三步:开始执行迭代表达式+条件表达式。
第四步:若条件表达式为true,则执行大括号中的语句,返回第三步;若为false,则控制点转到for的结束点。

下面我们通过多个例子来加深理解:
例子一:
for (int num = 1; num < 0; num++)
{
    Response.Write(num);
}

结果:空。
原因:先执行int num = 1;再执行num < 0;这时num < 0 返回false,退出循环。

例子二:
Response.Write("结果:<br />" );
for (int num = 1; num < 5; ++num)
{
    Response.Write(num + "<br />");
}

中第三部分换成:num++其结果也是:


原因:不要老是被i++,++i的问题搞混,在这里用起来一样,另外不要写类似int i = 0;i = i ++;i = ++i的写法。i = i++是啥呢?它就等价于:
int tmp = 0;
i = 1;
i = tmp; 

你写些让自己都可能搞混的代码,有必要吗?

例三:
for (int i = 9; i-- > 0; )
{
    Response.Write(i);
}

       这种感觉意义也不大,真不知道谁会这么写。根据上面所写的执行顺序,先执行int i = 9;然后就执行i-->0;那么这里i=8了,输出时也从8开始。

综上,等价于:
for (int i = 10; i-- > 0; )
{
    Response.Write(i);
}

例子四:
for (int i = 9,j = 1; i > 0&&j < 5; i--,j++)
{
    Response.Write(i + "*" + j + "=" +  i*j + "<br />");
}


for循环支持多表达式,上面的执行结果是:


例子五:

for(;;)
{
}

这是个死循环,因为当条件表达式为空或为true时都将执行大括号中的语句。
赞(0) 踩(0)
发表我的评论

最新评论

  1. 暂无评论