首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 技术专题 | 电子书下载 | 教学视频 | 网页设计 | 平面设计 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> C# >> 文章正文

展现C#世界之六:控制语句

文章来源ChinaItLab 作者佚名 更新时间2007-11-29 保存本文保存本文 推荐给好友推荐给好友 收藏本页收藏本页

  清单 6.3 在swtich语句中使用 goto 标签 和 goto default

  1: using System;

  2:

  3: class SwitchApp

  4: {

  5: public static void Main()

  6: {

  7: Random objRandom = new Random();

  8: double dRndNumber = objRandom.NextDouble();

  9: int nRndNumber = (int)(dRndNumber * 10.0);

  10:

  11: switch (nRndNumber)

  12: {

  13: case 1:

  14: //什么也不做

  15: break;

  16: case 2:

  17: goto case 3;

  18: case 3:

  19: Console.WriteLine("Handler for 2 and 3");

  20: break;

  21: case 4:

  22: goto default;

  23: // everything beyond a goto will be warned as

  24: // unreachable code

  25: default:

  26: Console.WriteLine("Random number {0}", nRndNumber);

  27: }

  28: }

  29: }

  在这个例子中,通过Random类产生用于控制表达式的值(第7~9行)。switch语段包含两个对switch语句有效的跳转语句。

  goto case  标签:跳转到所说明的标签

  goto default: 跳转到 default 标签

  有了这两个跳转语句,你可以创建同C一样的功能,但是,直达不再是自动的。你必须明确地请求它。不再使用直达功能的更深的含义为:你可任意排列标签,如把default标签放在其它所有标签的前面。为了说明它,我创建了一个例子,故意不结束循环:

  switch (nSomething)

  {

  default:

  case 5:

  goto default;

  }

  我已经保留了其中一个swich 语句功能的讨论直至结束——事实上你可以使用字符串作为常量表达式。这对于VB程序员,可能听起来不象是什么大的新闻,但来自C或C++的程序员将会喜欢这个新功能。现在,一个 switch 语句可以如以下所示检查字符串常量了。

  string strTest = "Chris";

  switch (strTest)

  {

  case "Chris":

  Console.WriteLine("Hello Chris!");

  break;

  }

  6.2 循环语句

  当你想重复执行某些语句或语段时,依据当前不同的任务,C#提供4个不同的循环语句选择给你使用:

  。 for 语句

  。foreach 语句

  。 while 语句

  。do 语句

  6.2.1 for 语句

  当你预先知道一个内含语句应要执行多少次时,for 语句特别有用。当条件为真时,常规语法允许重复地执行内含语句(和循环表达式):

  for (初始化;条件;循环) 内含语句

  请注意,初始化、条件和循环都是可选的。如果忽略了条件,你就可以产生一个死循环,要用到跳转语句(break 或goto)才能退出。

  for (;;)

  {

  break; // 由于某些原因

  }

  另外一个重点是,你可以同时加入多条由逗号隔开的语句到for循环的所有三个参数。例如,你可以初始化两个变量、拥有三个条件语句,并重复4个变量。

  作为C或C++程序员,你必须了解仅有的一个变化:条件语句必须为布尔表达式,就象 if 语句一样。

  清单6.4 包含使用 for 语句的一个例子。它显示了如何计算一个阶乘,比使用递归函数调用还要快。

  清单 6.4 在for 循环里计算一个阶乘

  1: using System;

  2:

  3: class Factorial

  4: {

  5: public static void Main(string[] args)

  6: {

  7: long nFactorial = 1;

  8: long nComputeTo = Int64.Parse(args[0]);

  9:

  10: long nCurDig = 1;

  11: for (nCurDig=1;nCurDig <= nComputeTo; nCurDig++)

  12: nFactorial *= nCurDig;

  13:

  14: Console.WriteLine("{0}! is {1}",nComputeTo, nFactorial);

  15: }

  16: }

  尽管该例子过于拖沓,但它作为如何使用for 语句的一个开端。首先,我本应在初始化内部声明变量nCurDig:for (long nCurDig=1;nCurDig <= nComputeTo; nCurDig++) nFactorial *= nCurDig;

上一页  [1] [2] [3] [4] [5] 下一页  

【责编:John】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 社区讨论
 博客论点
 Dotnet频道相关导航