您的位置:首页 >> 编程开发 >> .NET >> C# >> 正文
C# RSS
 

详解for循环(各种用法)

http://www.rdxx.com 08年08月08日 00:00 我要投稿

关键词: 循环
常见的for循环一般是一下代码这种结构:
  
  for (int i = 0; i < 100; i++)
  {
   Console.WriteLine(i);
  }
  
  
  或者递减的:
  
  
  
   for (int i = 100; 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 (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 = 75; i-- > 0; )
   jjrounds[i] = 0x80000000;
  
  
  出了一个空表达式,呵呵。其实理解一下也很简单,和下面代码的效果一样:
  
  
  
  for (i = 75; i > 0; i--)
   jjrounds[i] = 0x80000000;
  
  
  朋友留言指正,修正以上代码为:
  
  for(i = 74;i > 0;i--){
  
   jjrounds[i] = 0x80000000;
  
  }
  
  
  
  又弄错了,接受批评。应该换成下面的
  
  for(i = 74; i >= 0;i--)
  
   jjrounds[i] = 0x80000000;
  
  
  
  空表达式,也是一个表达式啊,放在这里也不犯法。
  
  
  
  嘿嘿,还有其他的表达式,比如:
  
  
  
  for (int i = 0; i < length; i++, pos++)
  
  
  这个应该不难理解,第三个表达式有两个,第一个当然也可以有两个
  
  
  
  比如 for (int i = 100, j = 100; i > 0 ; i--,j++)
  
  中间的表达式要想用两个就要加运算符了for (int i = 100, j = 100; i > 0 || j>0 ; i--,j++)
  
  
  
  这样就总结出三种for循环样式
  
  1、for(int i = 0;i < 100;i++) //递减和递加的算一种
  
  2、for(;true;) //有空表达式的
 

共3页  第1页 第2页 第3页


 
 
标签: 循环 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站