1、详解for循环各种用法常见的for循环一般是一下代码这种结构:for (int i = 0; i 0 ; 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 (le
2、n = min & len = min & len 0; ) jjroundsi = 0x80000000; 出了一个空表达式,呵呵。其实理解一下也很简单,和下面代码的效果一样: for (i = 75; i 0; i-) jjroundsi = 0x80000000; 朋友留言指正,修正以上代码为:for(i = 74;i 0;i-) jjroundsi = 0x80000000; 又弄错了,接受批评。应该换成下面的for(i = 74; i = 0;i-) jjroundsi = 0x80000000; 空表达式,也是一个表达式啊,放在这里也不犯法。 嘿嘿,还有其他的表达式,比如: for
3、 (int i = 0; i 0 ; i-,j+)中间的表达式要想用两个就要加运算符了for (int i = 100, j = 100; i 0 | j0 ; i-,j+) 这样就总结出三种for循环样式1、for(int i = 0;i 0 | j0 ; i-,j+) /有多表达式的 好像就这么多了。但是还有一种,我无法理解的表达式for(;)这是个 死循环 无限循环(没有跳出语句,才能成为死循环),汗!庐山瀑布汗啊,反正我理解不了。 嘿嘿,理解上面的表达式,基本上看别人的代码就不会摸不着头脑了。那是不是真的没有了呢?来试试这种 复制代码 static void Main(string a
4、rgs) for (Act(); ; ) Console.Read(); static void Act() 复制代码 哈哈,真是彻底被打败了。注意:没见过有这么用的,纯粹是实验,应用产生的后果我不负责啊。 放上三个方法爽爽: 复制代码 static void Main(string args) for (Act1(); Act2(); Act3() Console.Read(); static void Act1() static bool Act2() return true; static bool Act3() return true; 复制代码 当然,你非要用个委托,我也没意见: 复
5、制代码 delegate void Bind(); class Program static void Main(string args) Bind b = new Bind(Act1); for (b(); Act2(); Act3() Console.Read(); static void Act1() static bool Act2() return true; static bool Act3() return true; 复制代码 我考事件也出来了: 复制代码 delegate void Bind(); class Program static event Bind bindEve
6、nt; static void Main(string args) Bind b = new Bind(Act1); bindEvent += new Bind(Program_bindEvent); for (b(); Act2(); bindEvent() Console.Read(); static void Program_bindEvent() static void Act1() static bool Act2() return true; static bool Act3() return true; 复制代码 看出来了,只要是表达式,就能使用啊!除了第二个表达式必须为空,或者布尔值外,其他两个基本没什么限制。第二表达式为空则是死循环。 嘿嘿,无聊整出来的,欢迎大家拍砖!知道其他用法的朋友分享一下。 THANKS !致力为企业和个人提供合同协议,策划案计划书,学习课件等等打造全网一站式需求欢迎您的下载,资料仅供参考