本文由中国C#技术学习中心整理 如果你对本文有不明之处请到技术论坛讨论!
当使用foreach时,只要注意一个问题:当确定循环变量的类型时,应该格外小心.选择错误的类型并没有受到编译器的检测,但它会在运行时受检测,且会引发一个异常. 6.2.3 while 语句 当你想执行一个内含语句0次或更多次时,while语句正是你所盼望的: while ( 条件 ) 内含语句? 条件语句——它也是一个布尔表达式 ——控制内含语句被执行的次数.你可以使用 break 和continue语句来控制while语句中的执行语句,它的运行方式同在for语句中的完全相同. 为了举例while的用法,清单 6.6 说明如何使用一个 StreamReader类输出C#源文件到屏幕. 清单 6.6 显示一个文件的内容 1: using System; 2: using System.IO; 3: 4: class WhileDemoApp 5: { 6: public static void Main( ) 7: { 8: StreamReader sr = File.OpenText ( "whilesample.cs" ); 9: String strLine = null; 10: 11: while ( null != ( strLine = sr.ReadLine( ) ) ) 12: { 13: Console.WriteLine( strLine ); 14: } 15: 16: sr.Close( ); 17: } 18: } 代码打开文件 whilesample.cs, 接着当ReadLine 方法返回一个不等于null的值时,就在屏幕上显示所读取的值.注意,我在while条件语句中用到一个赋值.如果有更多的用&&和¦ ¦ 连接起来的条件语句,我不能保证它们是否会被执行,因为存在着“短路”的可能. 6.2.4 do 语句 C#最后可利用的循环语句是do语句.它与while语句十分相似,仅当经过最初的循环之后,条件才被验证. do { 内含语句 } while ( 条件 ); ? do语句保证内含语句至少被执行过一次,而且只要条件求值等于真,它们继续被执行.通过使用break语句,你可以迫使运行退出 do 语块.如果你想跳过这一次循环,使用continue语句. 一个如何使用do语句的例子显示在清单 6.7中.它向用户请求一个或多个数字,并且当执行程序退出do循环后计算平均值. 清单 6.7 在do 循环中计算平均值 1: using System; 2: 3: class ComputeAverageApp 4: { 5: public static void Main( ) 6: { 7: ComputeAverageApp theApp = new ComputeAverageApp( ); 8: theApp.Run( ); 9: } 10: 11: public void Run( ) 12: { 13: double dValue = 0; 14: double dSum = 0; 15: int nNoOfValues = 0; 16: char chContinue = 'y'; 17: string strInput; 18: 19: do 20: { 21: Console.Write( "Enter a value: " ); 22: strInput = Console.ReadLine( ); 23: dValue = Double.Parse( strInput ); 24: dSum += dValue; 25: nNoOfValues++; 26: Console.Write( "Read another value?" ); 27: 28: strInput = Console.ReadLine( ); 29: chContinue = Char.FromString( strInput ); 30: } 31: while ( 'y' == chContinue ); 32: 33: Console.WriteLine( "The average is {0}",dSum / nNoOfValues ); 34: } 35: } 在这个例子里,我在静态 Main函数中实例化 ComputeAverageApp类型的一个对象.它同样接着调用实例的Run方法,该方法包含了计算平均值所有必要的功能.
do 循环跨越第19~31行.条件是这样设定的:分别回答各个问题 “y”,以决定是否要增加另一个值.输入任何其它字符会引起程序退出 do语块,且平均值被计算. 正如你可以从提到的例子看出,do语句和while语句差别不太大——仅有的差别就是条件在什么时候被求值. 6.3 小结 这章解释了如何使用C#中用到的各种选择和循环语句. if 语句在应用程序中可能是最为常用的语句.当在布尔表达式中使用计算时,编译器会为你留意.但是,你一定要确保条件语句的短路不会阻止必要代码的运行. switch 语句——尽管同样与C语言的相应部分相似——但也被改善了.直达不再被支持,而且你可以使用字符串标签,对于C程序员,这是一种新的用法. 在这一章的最后部分,我说明如何使用for、foreach、while和do语句.语句完成各种需要,包括执行固定次数的循环、列举收集元素和执行基于某些条件的任意次数的语句.
本文由中国C#技术学习中心整理 如果你对本文有不明之处请到技术论坛讨论!
|