详解for循环各种用法.docx

上传人:b****3 文档编号:6677139 上传时间:2023-05-10 格式:DOCX 页数:7 大小:15.71KB
下载 相关 举报
详解for循环各种用法.docx_第1页
第1页 / 共7页
详解for循环各种用法.docx_第2页
第2页 / 共7页
详解for循环各种用法.docx_第3页
第3页 / 共7页
详解for循环各种用法.docx_第4页
第4页 / 共7页
详解for循环各种用法.docx_第5页
第5页 / 共7页
详解for循环各种用法.docx_第6页
第6页 / 共7页
详解for循环各种用法.docx_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

详解for循环各种用法.docx

《详解for循环各种用法.docx》由会员分享,可在线阅读,更多相关《详解for循环各种用法.docx(7页珍藏版)》请在冰点文库上搜索。

详解for循环各种用法.docx

详解for循环各种用法

常见的for循环一般是一下代码这种结构:

for(inti=0;i<100;i++)

{

Console.WriteLine(i);

}

或者递减的:

for(inti=100;i>0;i--)

{

Console.WriteLine(i);

}

但for当然不止这样一种用法。

for的定义,()内的三段表达式,除了中间的必须产生布尔型,并未对其余两段有所限制,只要是表达式就可以了。

在Lucene.Net中就有好几次这样的用法。

例如:

复制代码

for(Tokentoken=input.Next(result);token!

=null;token=input.Next(result))

{

intlen=token.TermText().Length;

if(len>=min&&len<=max)

{

returntoken;

}

}

复制代码

这个语句和下面代码的效果是一样的:

复制代码

Tokentoken;

while((token=input.Next(result))!

=null)

{

intlen=token.TermText().Length;

if(len>=min&&len<=max)

{

returntoken;

}

}

复制代码

其实我认为在这两种循环中,第二种比第一种好理解一点。

还有这种

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(inti=0;i

这个应该不难理解,第三个表达式有两个,第一个当然也可以有两个

比如for(inti=100,j=100;i>0;i--,j++)

中间的表达式要想用两个就要加运算符了for(inti=100,j=100;i>0||j>0;i--,j++)

这样就总结出三种for循环样式

1、for(inti=0;i<100;i++)//递减和递加的算一种

2、for(;true;)//有空表达式的

3、for(inti=100,j=100;i>0||j>0;i--,j++)//有多表达式的

好像就这么多了。

但是还有一种,我无法理解的表达式

for(;;)这是个死循环无限循环(没有跳出语句,才能成为死循环),汗!

庐山瀑布汗啊,反正我理解不了。

嘿嘿,理解上面的表达式,基本上看别人的代码就不会摸不着头脑了。

那是不是真的没有了呢?

来试试这种

复制代码

staticvoidMain(string[]args)

{

for(Act();;)

{

}

Console.Read();

}

staticvoidAct()

{

 

}

复制代码

哈哈,真是彻底被打败了。

注意:

没见过有这么用的,纯粹是实验,应用产生的后果我不负责啊。

放上三个方法爽爽:

复制代码

staticvoidMain(string[]args)

{

for(Act1();Act2();Act3())

{

}

Console.Read();

}

staticvoidAct1()

{

}

staticboolAct2()

{

returntrue;

}

staticboolAct3()

{

returntrue;

}

复制代码

当然,你非要用个委托,我也没意见:

复制代码

delegatevoidBind();

classProgram

{

staticvoidMain(string[]args)

{

Bindb=newBind(Act1);

for(b();Act2();Act3())

{

}

Console.Read();

}

staticvoidAct1()

{

}

staticboolAct2()

{

returntrue;

}

staticboolAct3()

{

returntrue;

}

}

复制代码

我考事件也出来了:

复制代码

delegatevoidBind();

classProgram

{

staticeventBindbindEvent;

staticvoidMain(string[]args)

{

Bindb=newBind(Act1);

bindEvent+=newBind(Program_bindEvent);

for(b();Act2();bindEvent())

{

}

Console.Read();

}

staticvoidProgram_bindEvent()

{

}

staticvoidAct1()

{

}

staticboolAct2()

{

returntrue;

}

staticboolAct3()

{

returntrue;

}

}

复制代码

看出来了,只要是表达式,就能使用啊!

除了第二个表达式必须为空,或者布尔值外,其他两个基本没什么限制。

第二表达式为空则是死循环。

嘿嘿,无聊整出来的,欢迎大家拍砖!

知道其他用法的朋友分享一下。

 

THANKS!

!

!

 

致力为企业和个人提供合同协议,策划案计划书,学习课件等等

打造全网一站式需求

欢迎您的下载,资料仅供参考

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2