《刻意练习之C#》-0012- 循环语句

C#提供了4种不同的循环语句(for, while, do...while和foreach)。

for 循环

C#的for循环提供了一种循环机制,根据指定的判断条件是否为true决定是否进入下一次循环。通常格式如下:

for ([initializer]; [condition]; [iterator])
{
    statement(s);
}

for循环被称为前测循环(pretest loop)因为它在执行循环体内的语句前,会先判断condition是否成立。因此如果condition为false的话,循环体将完全不执行。

while循环

跟for循环一样,while循环也是一个前测循环。语法很相似,但while循环只需要一个表达式:

while(condition)
{
	statement(s);
}

while循环更多地用于你事先不知道执行次数的情况下,去重复执行一段语句。

通常在while循环体内运算到某次循环的时候,就会修改condition计算出来的值,使得整个循环体能够结束。

bool condition = false;
while (!condition)
{
    // This loop spins until the condition is true.
	DoSomeWork();
    // assume CheckCondition() returns a bool, it will return true at a time then end the loop.
	condition = CheckCondition(); 
}

do...while循环

do...while循环是while循环的后测(post-test)版本。会先执行循环体,然后再检测condition是否为true。因此do...while循环适用至少执行一次的情况:

bool condition;
do
{
	// This loop will at least execute once, even if Condition is false.
	MustBeCalledAtLeastOnce();
	condition = CheckCondition();
} while (condition);

foreach循环

foreach循环可以迭代集合中的每一项。(集合是一组对象,集合里的对象必须实现IEnumerable接口)

foreach (int temp in arrayOfInts)
{
	Console.WriteLine(temp);
}

一个非常重要的点是,在foreach循环里所有元素都是只读的,你不能进行任何修改操作,像下面这样的代码会提示编译错误:

foreach (int temp in arrayOfInts)
{
	temp++; 
	Console.WriteLine(temp);
}

  

上一篇:并发编程学习笔记(十三、AQS同步器源码解析4,AQS条件锁Condition实现原理)


下一篇:【c++】mutex condition_variable 自定义信号量的应用和使用