首 页
|
新闻资讯
|
视频教程
|
电脑入门
|
程序开发
|
网页制作
|
操作系统
|
设计在线
|
办公软件
|
网络安全
|
常用软件
|
认证考试
常见for循环的各种用法
常见的for循环一般是一下代码这种结构: [code]for (int i = 0; i < 100; i++) { Console.WriteLine(i); }[/code] 或者递减的: [code] for (int i = 100; i > 0 ; i--) { Console.WriteLine(i); }[/code] 但for当然不止这样一种用法。for的定义,()内的三段表达式,除了中间的必须产生布尔型,并未对其余两段有所限制,只要是表达式就可以了。在Lucene.Net中就有好几次这样的用法。例如 [code]for (Token token = input.Next(result); token != null; token = input.Next(result)) { int len = token.TermText().Length; if (len >= min && len <= max) { return token; } }[/code] 这个语句和下面代码的效果是一样的: [code] Token token; while((token = input.Next(result)) != null) { int len = token.TermText().Length; if (len >= min && len <= max) { return token; } }[/code] 其实我认为在这两种循环中,第二种比第一种好理解一点。 还有这种 [code]for (i = 75; i-- > 0; ) jjrounds[i] = 0x80000000;[/code] 出了一个空表达式,呵呵。其实理解一下也很简单,和下面代码的效果一样: [code]for (i = 75; i > 0; i--) jjrounds[i] = 0x80000000;[/code] 空表达式,也是一个表达式啊,放在这里也不犯法。 嘿嘿,还有其他的表达式,比如: [code]for (int i = 0; i < length; i++, pos++)[/code] 这个应该不难理解,第三个表达式有两个,第一个当然也可以有两个 比如 [code]for (int i = 100, j = 100; i > 0 ; i--,j++)[/code] 中间的表达式要想用两个就要加运算符了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、for (int i = 100, j = 100; i > 0 || j>0 ; i--,j++) //有多表达式的 好像就这么多了。但是还有一种,我无法理解的表达式 for(;;)这是个死循环,汗!!!庐山瀑布汗啊,反正我理解不了。 嘿嘿,理解上面的表达式,基本上看别人的代码就不会摸不着头脑了。那是不是真的没有了呢? 来试试这种 [code] static void Main(string[] args) { for (Act(); ; ) { } Console.Read(); } static void Act() { }[/code] 哈哈,真是彻底被打败了。注意:没见过有这么用的,纯粹是实验,应用产生的后果我不负责啊。 [b]放上三个方法爽爽:[/b] [code] static void Main(string[] args) { for (Act1(); Act2(); Act3()) { } Console.Read(); } static void Act1() { } static bool Act2() { return true; } static bool Act3() { return true; }[/code] 当然,你非要用个委托,我也没意见: [code] 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; } }[/code] 我考事件也出来了: [code] delegate void Bind(); class Program { static event Bind bindEvent; 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; } }[/code] 看出来了,只要是表达式,就能使用啊!除了第二个表达式必须为空,或者布尔值麦客学吧
阅读全文:http://x8.MaiCoo.com/tech/c/18088.html
发表时间:2008-8-5 8:11:34 讨论数:0
暂无讨论组成员发表!
昵 称
:麦客网友[游客] 如果您不想匿名评论请先
登录
或
注册
!
评 论
:请自觉遵守互联网相关政策法规,管理员有权删除恶意评论、广告和违禁词语。
验证码:
热门讨论文章
1170次
一步一步教你如何重装XP系统(超详细)
122次
Windows XP系统重装详细视频教程
58次
vb.net基础教程
49次
Visual Basic 6.0(VB)入门到精通视频教程
22次
ASP与数据库连接方法
21次
Photoshop精细磨皮去斑教程
20次
Photoshop制作“红心中国”QQ头像
19次
Windows操作系统太慢 重装不如更换帐户
16次
vb. net介绍
13次
Photoshop移花接木:照片换脸术
Copyright © 2008
MaiCoo.Com
All Rights Reserved
浙ICP备06017818号