for循环的格式为:
for(【初始化表达式】;【条件表达式】;【迭代表达式 】)
{
//语句块
}
其中:【初始化表达式】;【条件表达式】;【迭代表达式 】都是可选的,【条件表达式】必须是一个布尔表达式。
执行步骤为:
第一步:开始执行初始化表达式,只执行一次。
第二步:开始执行条件表达式(若为空,则返回true),若为true,则执行大括号中的语句;若为false,则直接跳到for的结束点。
第三步:开始执行迭代表达式+条件表达式。
第四步:若条件表达式为true,则执行大括号中的语句,返回第三步;若为false,则控制点转到for的结束点。
下面我们通过多个例子来加深理解:
例子一:
代码如下 | 复制代码 |
for (int num = 1; num < 0; num++) { Response.Write(num); } |
结果:空。
原因:先执行int num = 1;再执行num < 0;这时num < 0 返回false,退出循环。
例子二:
代码如下 | 复制代码 |
Response.Write("结果:<br />" ); for (int num = 1; num < 5; ++num) { Response.Write(num + "<br />"); } |
中第三部分换成:num++其结果也是:
原因:不要老是被i++,++i的问题搞混,在这里用起来一样,另外不要写类似int i = 0;i = i ++;i = ++i的写法。i = i++是啥呢?它就等价于:
代码如下 | 复制代码 |
int tmp = 0; i = 1; i = tmp; |
本示例的FOR循环创建一个Mandelbrot图像。
代码如下 | 复制代码 |
using System; namespace a { class Program { public 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) { case 0: Console.Write("."); break; case 1: Console.Write("o"); break; case 2: Console.Write("0"); break; case 3: Console.Write("@"); break; } } Console.Write("n"); } Console.ReadKey(); } } } |
以前在群里面看到的,觉得挺好的。贴出来
代码如下 | 复制代码 |
class Program { static void Main(string[] args) { //List<int> items = new List<int>(); //for (int i = 0; i < 100; i++) //{ // items.Add(i); //} //{ // items.RemoveAt(i); //} //Console.ReadKey(); //{ // items.Add(i); //} //int itemCount = items.Count; //for (int i = 0; i < itemCount; i++) //{ // items.RemoveAt(i); //} //Console.WriteLine(items.Count); //Console.ReadKey(); //var items = new List<int>(); //for (var i = 0; i < 100; i++) //{ // items.Add(i); //} //items.RemoveAll(item => item > 50);
//Console.WriteLine(items.Count); //Console.ReadKey(); //var items = new List<int>();
//for (var i = 0; i < 100; i++) //{ // items.Add(i); //}
//foreach (var item in items) //{ // items.Remove(item); //}
//Console.WriteLine(items.Count); //Console.ReadKey(); var items = new List<int>(); for (var i = 0; i < 100; i++) items.Add(i); foreach (var item in items2) { items.Remove(item); }
Console.WriteLine(items.Count); Console.WriteLine(items2.Count); Console.ReadKey(); } } |