C#提供的4种不同的循环机制_第1页
C#提供的4种不同的循环机制_第2页
C#提供的4种不同的循环机制_第3页
C#提供的4种不同的循环机制_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、详细解说 C# 提供的 4 种不同的循环机制 for 、while 、 do.while 和 foreachC# 提供了 4 种不同的循环机制 (for 、while 、 do.while 和 foreach) ,在满足某个条件之前,可以重复执行 代码块。 for 、 while 和 do.while 循环与 C+ 中的对应循环相同。1. 接下来美国服务器租用商来介绍 for 循环C# 的 for 循环提供的迭代循环机制是在执行下一次迭代前,测试是否满足某个条件,其语法如下:for (initializer; condition; iterator)statement(s)其中:initial

2、izer 是指在执行第一次迭代前要计算的表达式(通常把一个局部变量初始化为循环计数器) ;condition 是在每次迭代新循环前要测试的表达式 (它必须等于 true ,才能执行下一次迭代 );iterator 是每次迭代完要计算的表达式 ( 通常是递增循环计数器 )。当 condition 等于 false 时,迭代停止。 for 循环是所谓的预测试循环,因为循环条件是在执行循环语句前计算的,如果循环条件为假,循环语句 就根本不会执行。for 循环非常适合于一个语句或语句块重复执行预定的次数。 下面的例子就是 for 循环的典型用法, 这段代 码输出从 099 的整数:for (int i

3、 = 0; i 100; i = i+1) / this is equivalent to/ For i = 0 To 99 in VB.Console.WriteLine(i); 这里声明了一个int类型的变量i,并把它初始化为 0,用作循环计数器。接着测试它是否小于100。香港服务器租用商因为这个条件等于 true ,所以执行循环中的代码,显示值0。然后给该计数器加 1,再次执行该过程。当 i 等于 100 时,循环停止。实际上,上述编写循环的方式并不常用。C#在给变量加1时有一种简化方式,即不使用i = i+1,而简写为 i+ :for (int i = 0; i 100; i+)/et

4、c.C#的for循环语法比Visual Basic中的ForNext循环的功能强大得多,因为迭代器可以是任何语句。在Visual Basic中,只能对循环控制变量加减某个数字。在C#中,则可以做任何事,例如,让循环控制变量乘以2 。也可以在上面的例子中给循环变量 i 使用类型推断功能。使用类型推断功能时,循环结构变成:for (var i = 0; i 100; i+)嵌套的 for 循环非常常见,在每次迭代外部的循环时,内部循环都要彻底执行完毕。这种模式通常用于在 矩形多维数组中遍历每个元素。最外部的循环遍历每一行,内部的循环遍历某行上的每个列。下面的代码显示数字行,它还使用另一个 Cons

5、ole 方法 Console.Write() ,该方法的作用与Console.WriteLine() 相同,但不在输出中添加回车换行符:using System;namespace Wrox.ProCSharp.Basicsclass MainEntryPointstatic void Main(string args)/ This loopiterates through rows.for (int i = 0; i 100; i+=10)/This loop iterates through columns.for (int j = i; j i + 10; j+)Console.Writ

6、e( +j);Console.WriteLine();尽管 j 是一个整数,但它会自动转换为字符串,以便进行连接。 C+ 开发人员要注意,这比在 C+ 中处理 字符串容易得多, Visual Basic 开发人员则已经习惯于此了。C和C+程序员应注意上述例子中的一个特殊功能。在每次迭代外部的循环时,内部循环的计数器变量都要重新声明。这种语法不仅在 C# 中可行,在 C+ 中也是合法的。上述例子的结果是:csc NumberTable.csMicrosoft (R) Visual C# .NET Compiler version 9.00.20404for Microsoft (R) .NET

7、Framework version3.5Copyright (C) Microsoft Corporation. All rights reserved.0 1 2 3 4 5 6 7 8 910 11 12 13 14 15 16 17 18 1920 21 22 23 24 25 26 2 7 28 2930 31 32 33 3435 36 37 38 3940 41 42 43 44 45 46 47 48 4950 51 52 53 54 55 56 57 58 596 0 61 62 63 64 65 66 67 68 697071 72 73 74 75 76 77 78 798

8、0 81 82 83 84 85 86 87 88 8990 91 92 93 94 9596 97 98 99尽管在技术上,可以在 for 循环的测试条件中计算其他变量,而不计算计数器变量,但这不太常见。也可以在 for 循环中忽略一个表达式 (甚或所有表达式 )。国外服务器租用上提醒您但此时,要考虑使用while循环。2. while 循环while 循环与 C+ 和 Java 中的 while 循环相同,与 Visual Basic 中的 While.Wend 循环相同。与 for 循环一样, while 也是一个预测试的循环。其语法是类似的,但 while 循环只有一个表达式:whil

9、e(condition)statement(s);与 for 循环不同的是, while 循环最常用于下述情况: 在循环开始前, 不知道重复执行一个语句或语句块的 次数。通常,在某次迭代中, while 循环体中的语句把布尔标记设置为 false,结束循环,如下面的例子所示。bool condition = false;while (!condition)/ This loop spins until the condition istrue.DoSomeWork();condition = CheckCondition();/ assumeCheckCondition() returns a

10、 bool所有的 C# 循环机制,包括 while 循环,如果只重复执行一条语句,而不是一个语句块,都可以省略花括 号。许多程序员都认为最好在任何情况下都加上花括号。3. do whi循环 do.while 循环是 while 循环的后测试版本。它与 C+ 和 Java 中的 do.while 循环相同,与 Visual Basic 中的 Loop.While 循环相同,该循环的测试条件要在执行完循环体之后执行。因此 do.while 循环适合于至少执行一次循环体的情况:bool condition;do / This loop will at least execute once, even

11、 if Condition isfalse.MustBeCalledAtLeastOnce();condition = CheckCondition(); while(condition);4. foreach 循环foreach循环是我们讨论的最后一种C#循环机制。其他循环机制都是 C和C+的最早期版本,而foreach语句是新增的循环机制 (借用于 Visual Basic) ,也是非常受欢迎的一种循环。foreach 循环可以迭代集合中的每一项。现在不必考虑集合的概念,第 10 章将介绍集合。知道集合是一种 包含其他对象的对象即可。美国服务器租用商提醒您从技术上看,要使用集合对象,就必须支持lEnumerable接口。集合的例子有 C#数组、System.Collection命名空间中的集合类,以及用户定义的集合类。从下面的代码中可以了解 foreach 循环的语法,其中假定 arrayOfInts 是一个整型数组:foreach (int temp in arrayOflnts) Console.WriteLine(temp);其中, foreach 循环每次迭代数组中的一个元素。它把每个元素的值放在 int 型的变量 temp 中,然后执行 一次循环迭代。这里也可以使用类型推断功能。此时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论