asp.net for循环语句

  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++其结果也是:

asp.net for循环语句

  原因:不要老是被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循环支持多表达式,上面的执行结果是:

asp.net for循环语句

  例子五:

for(;;)

  {

  }

  这是个死循环,因为当条件表达式为空或为true时都将执行大括号中的语句。