All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
PHP+MySQL扎实基本功_[PHP教程]
delphiDelphi多彩的菜单实例
C#中定义鼠标指针形状的方法实例
详细介绍动态网页PHP预定义变量之服务器变量_php资料_编程技术
建立Apache+PHP3+MySQL驱动的动态网站_php资料_编程技术
使用,ASP.NET,Atlas,PageNavigator控件实现客户端分页导航_[Asp.Net教程]
SQL,Server,7.0,入门(七)_mssql学习_编程技术
技巧:在ASP.NET页中检测浏览器类型_.net资料_编程技术
PHP 5.0中多态性的实现方案浅析_[PHP教程]
ASP.NET配置(web.config)无法连接到SQL,Server,数据库的解决方法_[Asp.Net教程]
Reading number is top 10 pictures
谁认识这位校花
Men don't mature ten sign
BingBingFan apple dew point photo gallery1
Born After 90 Beijing sports university campus flower photos1
到南昌西站了2
The little girl with long hair2
More attractive than sora aoi4
我国房地产真相
美女
From China fortress sora aoi3
Download software ranking
Sora aoi's film--cangkong_Blue.Sky
C#与.NET技术平台实战演练
虚拟机汉化软件
Proficient in Eclipse
Unix video tutorial11
Boxer vs Yellow1
Twenty piece of palm leaf
虚拟机5.5.3版
变速齿轮3.26
The Bermuda triangle1
delv published in(发表于) 2014/1/6 9:07:58 Edit(编辑)
Visual,C#2005快速入门之switch语句_[Asp.Net教程]

Visual,C#2005快速入门之switch语句_[Asp.Net教程]

Visual C#2005快速入门之switch语句_[Asp.Net教程]

某些时候,在嵌套使用if语句时,所有if语句看起来都非常相似,因为它们都在对一个完全相同的表达式进行求值,惟一的区别是每个if语句都将表达式的结果与一个不同的值进行比较。例如:


if (day == 0)
 dayName = "Sunday";
else if (day == 1)
 dayName = "Monday";
else if (day == 2)
 dayName = "Tuesday";
else if (day == 3)
 ...
else
 dayName = "Unknown";

  在这些情况下,通常需要将嵌套的if语句改写为一个switch语句,使程序更有效、更容易懂。

  理解switch语句的语法

  switch语句的语法如下(switch,case和default是关键字):


switch ( controllingExpression )
{
 case constantExpression :
  statements
  break;
 case constantExpression :
  statements
  break;
 ...
 default :
  statements
  break;
}

  controllingExpression(控制表达式)只求值一次。然后,从其constantExpression值等于controllingExpression值的case开始,它下方的所有语句都会一直运行,直到遇到一个break为止。随后,switch语句将结束,程序从switch结束大括号之后的第一个语句继续执行,并忽略其他case。

  假如任何一个constantExpression值都不等于controllingExpression的值,就运行可选标签default之下的语句。

  注意 假如controllingExpression的值和任何一个case标签都不匹配,同时没有发现一个default标签,程序会跳过整个switch语句,从它的结束大括号之后的第一个语句继续执行。

  例如,前面的嵌套if语句可以改写为以下switch语句:


switch (day)
{
 case 0 :
  dayName = "Sunday";
  break;
 case 1 :
  dayName = "Monday";
  break;
 case 2 :
  dayName = "Tuesday";
  break;
 ...
 default :
  dayName = "Unknown";
  break;
}

  遵守switch语句规则

  switch语句非常有用,但在使用时必须谨慎。所写的任何switch语句都必须遵循以下规则:

  只能针对基本数据类型使用switch,这些类型包括int和string等待。对于其他类型,则必须使用if语句。

  case标签必须是常量表达式(constantExpression),如42或者"42"。如果需要在运行时计算case标签的值,必须使用if语句。

  case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。

  可以连续写下一系列case标签(中间不能间插额外的语句),从而指定自己希望在多种情况下都运行相同的语句。如果像这样写,那么最后一个case标签之后的代码将适用于所有case。然而,假如一个标签关联了一个或多个语句,又没有使用break来跳出,那么执行就不能贯穿到后续的标签,而且编译器会报告一个错误。例如:


switch (trumps)
{
 case Hearts :
 case Diamonds : // 允许贯穿 — 标签之间无额外代码
  color = "Red"; // 针对Hearts和Diamonds这两种情况都会执行的代码
  break;
 case Clubs :
  color = "Black";
 case Spades : // 出错 — 标签之间有额外代码,而且没有使用break来跳出
  color = "Black";
  break;
}

  注意 break语句是用来阻止贯穿的最常见的方式,但也可以用一个return语句或者一个throw语句来替代它。throw语句的详情将在以后讨论。


  不准贯穿

  由于C#存在不准贯穿(fall through)的规则,所以可以自由地安排一个switch语句的各个区域,而不至于影响其含义(其中包括default标签,它传统意义上是最后一个标签,但并非一定如此)。

  C和C++程序员要注意的是,在使用C#编程时,必须为switch语句中的每个case(包括default case)都提供一个break语句。这个要求是一件好事情,C和C++程序员经常忘记添加break语句,造成执行自动贯穿到后续的标签,并造成很难发现的bug。

  然而,如果你真的喜欢,也可以在C#中模拟C++的贯穿行为,方法是使用一个goto语句来转到下一个case或者default标签。但这种用法是不推荐的,本书也不打算介绍具体细节!

  在下面的练习中,我们准备完成一个程序,它将读取一个字符串中包含的字符,并将每个字符都映射成它的XML形式。例如,'<'字符在XML中具有特殊含义(用于构成元素),所以要想正确显示它,就必须转换成"&lt;"。我们打算写一个switch语句来测试字符的值,并将特殊XML字符作为case标签来使用。
  编写switch语句

  1. 启动Visual Studio 2005。

  2. 打开SwitchStatement项目,它位于My Documents文件夹下的\Microsoft Press\Visual CSharp Step by Step\Chapter 4\SwitchStatement子文件夹中。

  3. 选择“调试”|“开始执行(不调试)”。

  Visual Studio 2005将生成并运行应用程序。窗体上将出现上下两个文本框,中间用一个Copy按钮分隔。如图所示。



图 两个文本框用一个Copy按钮隔开


  4. 在上方的文本框中输入以下示例文本:


inRange = (lo <= number) && (number <= hi);

  5. 单击Copy。

  所有内容会逐字复制到下方的文本框中,期间不会对'<'字符进行转换。

  6. 关闭窗体。

  7. 在“代码和文本编辑器”窗口中显示Form1.cs的代码,找到copyOne方法。

  copyOne方法负责将一个字符从上方的文本框复制到下方的文本框。目前,copyOne方法中包含了一个switch语句,但其中只提供了一个default小节。

  在后续的步骤中,我们将修改这个switch语句,使它能将XML中的特殊字符转换成XML映射形式。例如,'<'字符将转换成字符串"&lt;"。

  8. 在switch语句中,于default标签上方添加以下语句:


case '<' :
 target.Text += "&lt;";
 break;
case '>' :
 target.Text += "&gt;";
 break;
case '&' :
 target.Text += "&amp;";
 break;
case '\"' :
 target.Text += "&#34;";
 break;
case '\'' :
 target.Text += "&#39;";
 break;

  注意 在最后两个case中,反斜杠(\)是一个转义符,它会造成后续的字符(即"和')被视为一个直接量,而不是被视为字符串或字符常量的定界符。

  9. 选择“调试”|“开始执行(不调试)”。

  Visual Studio 2005将生成并运行应用程序。

  10. 在上方的文本框中输入以下文本:


inRange = (lo <= number) && (number <= hi);

  11. 单击Copy。

  所有内容会复制到下方的文本框中。这一次,每个字符都会在switch语句中进行XML映射处理。

  12. 关闭窗体。
来源:CSDN





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.