这类循环可以执行指定的次数,并维护它自己的计数器。
要定义for循环,需要下列信息:
初始化计数器变量的一个起始值。
继续循环的条件,它应涉及到计数器变量。
在每次循环的最后,对计数器变量执行一个操作。
例如,如果要在循环中,使计数器从1递增到10,递增量为1,则起始值为1,条件是计数器小于或等于10,在每次循环的最后,要执行的操作是给计数器加1。
这些信息必须放在for循环的结构中,如下所示:
for (<initialization>; <condition>; <operation>) { <code to loop> }
它的工作方式与下述while循环完全相同:
<initialization> while (<condition>) { <code to loop> <operation> }
循环输出从1~10的数字。下面看看如何使用for循环完成这个任务:
int i; for (i = 1; i <= 10; ++i) { console.writeline("{0}", i); }
最后要注意的是,可以把计数器变量声明为for语句的一部分,重新编写上述代码,如下所示:
for (int i = 1; i <= 10; ++i) { console.writeline("{0}", i); }
但如果这么做,就不能在循环外部使用变量i(参见第6章中的“变量作用域”一节)。
下面看一个示例,他将:显示一个mandelbrot集合(使用纯文本字符,看起来不会那么吸引人)!,代码如下:
using system; using system.collections.generic; using system.linq; using system.text; using system.threading.tasks; namespace ch04ex06 { class program { static void main(string[] args) { double realcoord, imagcoord; double realtemp, imagtemp, realtemp2, arg; int iterations; for( imagcoord =1.2; imagcoord >= -1.2; imagcoord -= 0.05 ) { for( realcoord = -0.6; realcoord <= 1.77; realcoord += 0.03 ) { iterations = 0; realtemp = realcoord; imagtemp = imagcoord; arg = ( realcoord * realcoord ) + ( imagcoord * imagcoord ); while( ( arg < 4 ) && ( iterations < 40 ) ) { realtemp2 = ( realtemp * realtemp ) - ( imagtemp * imagtemp ) - realcoord; imagtemp = (2 * realtemp * imagtemp) - imagcoord; realtemp = realtemp2; arg = ( realtemp * realtemp ) + ( imagtemp * imagtemp ); iterations += 1; } switch( iterations % 4 ) { case0: console.write( "." ); break; case1: console.write( "o" ); break; case2: console.write( "o" ); break; case3: console.write( "@" ); break; } } console.write( "n" ); // 换行 } console.readkey(); } } }
运行结果如下:
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!