知识大全 详解for循环(各种用法)

Posted 表达式

篇首语:学习从来无捷径,循序渐进登高峰。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 详解for循环(各种用法)相关的知识,希望对你有一定的参考价值。

常见的for循环一般是一下代码这种结构      for (int i = ; i < ; i++)       Console WriteLine(i);            或者递减的             for (int i = ; i > ; i )       Console WriteLine(i);                  但for当然不止这样一种用法 for的定义 ()内的三段表达式 除了中间的必须产生布尔型 并未对其余两段有所限制 只要是表达式就可以了 在Lucene Net中就有好几次这样的用法 例如            for (Token token = input Next(result); token != null; token = input Next(result))       int len = token TermText() Length;    if (len >= min && len <= max)       return token;               这个语句和下面代码的效果是一样的             Token token;    while((token = input Next(result)) != null)       int len = token TermText() Length;    if (len >= min && len <= max)       return token;               其实我认为在这两种循环中 第二种比第一种好理解一点            还有这种            for (i = ; i > ; )    jjrounds[i] = x ;         出了一个空表达式 呵呵 其实理解一下也很简单 和下面代码的效果一样            for (i = ; i > ; i )    jjrounds[i] = x ;         朋友留言指正 修正以上代码为      for(i = ;i > ;i )       jjrounds[i] = x ;                  又弄错了 接受批评 应该换成下面的      for(i = ; i >= ;i )       jjrounds[i] = x ;            空表达式 也是一个表达式啊 放在这里也不犯法            嘿嘿 还有其他的表达式 比如            for (int i = ; i < length; i++ pos++)         这个应该不难理解 第三个表达式有两个 第一个当然也可以有两个            比如 for (int i = j = ; i > ; i j++)      中间的表达式要想用两个就要加运算符了for (int i = j = ; i > || j> ; i j++)            这样就总结出三种for循环样式       for(int i = ;i < ;i++) //递减和递加的算一种       for(;true;) //有空表达式的       for (int i = j = ; i > || j> ; i j++) //有多表达式的            好像就这么多了 但是还有一种 我无法理解的表达式      for(;;)这是个 死循环 无限循环(没有跳出语句 才能成为死循环) 汗!!!庐山瀑布汗啊 反正我理解不了            嘿嘿 理解上面的表达式 基本上看别人的代码就不会摸不著头脑了 那是不是真的没有了呢?      来试试这种             static void Main(string[] args)       for (Act(); ; )             Console Read();          static void Act()                     哈哈 真是彻底被打败了 注意 没见过有这么用的 纯粹是实验 应用产生的后果我不负责啊            放上三个方法爽爽             static void Main(string[] args)       for (Act (); Act (); Act ())             Console Read();          static void Act ()                static bool Act ()       return true;          static bool Act ()       return true;            当然 你非要用个委托 我也没意见             delegate void Bind();    class Program       static void Main(string[] args)       Bind b = new Bind(Act );    for (b(); Act (); Act ())             Console Read();          static void Act ()                static bool Act ()       return true;          static bool Act ()       return true;                     我考事件也出来了             delegate void Bind();    class Program       static event Bind bindEvent;       static void Main(string[] args)       Bind b = new Bind(Act );    bindEvent += new Bind(Program_bindEvent);    for (b(); Act (); bindEvent())             Console Read();          static void Program_bindEvent()                static void Act ()                static bool Act ()       return true;          static bool Act ()       return true;               看出来了 只要是表达式 就能使用啊!除了第二个表达式必须为空 或者布尔值外 其他两个基本没什么限制 第二表达式为空则是死循环 cha138/Article/program/ASP/201311/21797

相关参考