《C#结构化程序设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《C#结构化程序设计ppt课件.ppt(98页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。第4章 结构化程序设计“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。本章主要介绍结构化程序设计的概念,三种基本控制结构以及C#中的常用语句。程序是由语句构成的,C#的常用语句包括:简单语句、条件语句、分支语句、循环语句、跳转语句等。只有很好地掌握程序设计语言的各种语句,才能构造正确的和结构良好、清晰的程序。2C#
2、程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.1 结构化程序设计的概念结构化程序设计的主要观点是采用自顶向下自顶向下、逐逐步求精步求精的程序设计方法;使用三种基本控制结构构造程序,任何程序都是由顺序顺序、选择选择、循环循环三种基本控制结构进行构造 。3C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。4.1.1 结构化程
3、序设计的概念及算法的概念结构化程序设计结构化程序设计是以模块化设计为中心以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块。由于模块相互独立,因此在设计其中一个模块时,不会受到其它模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便。按照结构化程序设计的观点,任何算法功能都可以通过由程序模块组成的三种基本程序结构的组合:顺序顺序结构结构、选择结构选择结构和循环结构循环结构来实现。4C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以
4、公共安全视频监控联网应用为重点的“群众性治安防控工程”。4.1.1 结构化程序设计的概念及算法的概念结构化程序设计的基本思想是采用结构化程序设计的基本思想是采用“自顶向下,逐自顶向下,逐步求精步求精”的程序设计方法和的程序设计方法和“单入口单出口单入口单出口”的控的控制结构。制结构。“自顶向下、逐步求精自顶向下、逐步求精”的程序设计方法从问题本身开始,经过逐步细化,将解决问题的步骤分解为由基本程序结构模块组成的结构化程序框图;“单入口单出口单入口单出口”的思想认为一个复杂的程序,如果它仅是由顺序、选择和循环三种基本程序结构通过组合、嵌套构成,那么这个新构造的程序一定是一个单入口单出口的程序。5
5、C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。4.1.1 结构化程序设计的概念及算法的概念结构化程序设计的实质是控制编程中的复杂性结构化程序设计的实质是控制编程中的复杂性。在此,我们来关注一下程序设计的主要步骤:(1)分析问题。 (2)确定算法。(3)画出程序流程图。(4)编写程序。 (5)调试程序。 (6)建立健全的文档资料。6C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、
6、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。4.1.1 结构化程序设计的概念及算法的概念其中,关键问题关键问题在于第2个步骤,即“算法设计”。 所谓“算法算法”,粗略地讲,是为解决一个特定问题而采取的确定的有限的步骤。这里所说的算法,是指计算机能执行的算法。只有算法是正确的,写程序就不会有太大的困难。一个程序员应该掌握如何设计一个问题的算法或者采用已有的可行算法。计算机算法可以采用流程图流程图来表示。7C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工
7、程”。4.1.2 流程图流程图流程图(Flowchart),它是用一些几何框图、流向线和文字说明来表示各种类型的操作。计算机算法可以用流程图来表示,图4-1、图4-2、图4-3和图4-4是用流程图表示了结构化程序设计的3种基本结构。8C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.2 顺序结构顺序结构的流程图如图4-1所示,先执行A语句,再执行B语句,两者是顺序执行的关系。A、B可以是一个简单语句,也可以是一个基本结构,即顺序结构、选择结构或者循环结构
8、之一。常用的简单语句包括空语句、复合语句、标签语句、空语句、复合语句、标签语句、声明语句和表达式语句声明语句和表达式语句等。9C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。4.2.1 空语句空语句空语句是一种最简单的语句,它不实现任何功能,C#的空语句的形式如下:;即只有一个分号的语句。在不需要执行任何操作但又需要一条语句时,可以采用空语句来表示。10C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑
9、、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.2.2 复合语句可以用把一些语句包括起来成为复合语句复合语句,或者称为块块。例如,下面就是一条复合语句: int X, Y, Z; X = 9; Y = X + 10; Z = X * Y;11C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.2.3 标签语句C#程序允许在一条语句前面使用标签前缀标签前缀,其形式如下:标签名称:语句标签语句主要用于配合goto语句来完成
10、程序的跳转功能,例如:if (X 0) goto Large;X = -X;Large: return X;12C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.2.4 顺序结构的实例【例例4-14-1】编写程序计算圆的面积。编写程序计算圆的面积。using System;using System;namespace OrderStructurenamespace OrderStructure class Circleclass Circle stati
11、c void Main()static void Main() const double PI = 3.14159;const double PI = 3.14159; double R, S;double R, S; Console.WriteLine(Console.WriteLine(请输入圆的半径:请输入圆的半径:);); R = double.Parse(Console.ReadLine();R = double.Parse(Console.ReadLine(); S = PI S = PI * * R R * * R; R; Console.WriteLine(Console.Wr
12、iteLine(圆的面积为:圆的面积为:0, S);0, S); 13C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.2.4 顺序结构的实例上面这段程序就是一个典型的顺序结构。典型的顺序结构。在Circle类的Main方法中,程序根据语句出现的顺序依次执行,先是在程序中输入一个半径值,然后根据计算公式计算出圆的面积,最后将圆的面积的值进行输出。14C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑
13、、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3 选择结构在实际的运算中,往往要进行复杂的逻辑判定逻辑判定,即给出一些条件,让程序判定是否满足条件,并按不同的情况让程序进行不同的处理。比如,输入一个考试成绩,判定它是优、良、中、及格或不及格等。或者输入两个字母,比较其ASCII码的大小,然后根据不同的情况进行相应的处理。这些问题是需要由程序按给定的条件进行比较和判定,并按判定后的不同情况进行处理,这时就需要用到选择结构。15C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公
14、共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3 选择结构选择结构选择结构也是一种常用的基本结构,是根据所定选择条件为真与否,而决定从各个不同的操作分支中执行某一分支的相应操作。常用的选择结构有条件语句和分支语句。16C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3.1 条件语句常用的条件语句有如下几种。1. if1. if语句语句if语句是基于布尔表达式的值来判定是否执行后面的内嵌的语句块,其语法形式如下:if(表达式)语句块;17C
15、#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3.1 条件语句说明:说明:如果表达式的值为true(即条件成立),则执行后面的if语句所控制的语句块,如果表达的值为false(即条件不成立),则不执行if语句控制的语句块。然后再执行程序中的后一条语句。if语句的程序流程图如图4-5所示。如果if语句只控制一条语句,则大括号“”可以省略。18C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格
16、化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。【例例4-24-2】编写程序实现从键盘上输入一个数,输出它的绝对值。using System;class AbsDemo static void Main() int x, y; string str; Console.WriteLine(请输入x的值:); str = Console.ReadLine(); x = Convert.ToInt32(str); y = x; if(x= 60) Console.WriteLine(该成绩合格。); else Console.WriteLine(该成绩不合格。); 23C#程
17、序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3.1 条件语句说明:说明:上例中if语句和else语句后的大括号“”可以省略,因为它们都只控制一条语句。但显而易见,加上大括号,程序的结构更加分明。24C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3.1 条件语句如果程序的逻辑判定关系比较复杂,通常会用到如果程序的
18、逻辑判定关系比较复杂,通常会用到ifelseifelse嵌套嵌套语句,语句,if if语句可以嵌套使用,即在判定之中又有判定。其一般语句可以嵌套使用,即在判定之中又有判定。其一般形式如下:形式如下:if(if(表达式表达式1)1) if(if(表达式表达式2)2) if(if(表达式表达式3)3) . . 语句语句1;1; elseelse 语句语句2;2; elseelse 语句语句3;3;elseelse 语句语句4;4;在应用这种在应用这种ifelseifelse结构时,结构时,要注意要注意elseelse和和if if的配对关系,此配的配对关系,此配对关系是:从第对关系是:从第1 1个
19、个elseelse开始,一开始,一个个elseelse总是和它上面离它最近的总是和它上面离它最近的可配对的可配对的if if配对。配对。25C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。请看下例:if (i = 80) if (j 100) c = d; else /这个else与if (k 100)相匹配 a = c; else /这个else与if (k = 80)相匹配 a = d; 注意:注意:在此建议在应用ifelse嵌套语句时,即使控制一条语句
20、,也应该加上一对“”。26C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3.1 条件语句【例例4-44-4】假设考查课的成绩按优秀、良好、中等、及格和不及假设考查课的成绩按优秀、良好、中等、及格和不及格分为五等,但是实际的考试成绩是百分制的,分别对应的分格分为五等,但是实际的考试成绩是百分制的,分别对应的分数段为数段为9010090100、80898089、70797079、60696069、059059。使用嵌套。使用嵌套的的ifelseifels
21、e语句将考试成绩转换为考查课成绩。语句将考试成绩转换为考查课成绩。程序代码如下所示:程序代码如下所示:using System;using System; class TestScoreclass TestScore static void Main() static void Main() int InputScore; int InputScore; string OutputScore; string OutputScore; Console.WriteLine( Console.WriteLine(请输入百分制分数:请输入百分制分数:);); InputScore = Convert.
22、ToInt32(Console.ReadLine(); InputScore = Convert.ToInt32(Console.ReadLine();27C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3.1 条件语句if (InputScore = 70)if (InputScore = 70) if (InputScore = 80) if (InputScore = 80) if (InputScore = 90) if (InputScore
23、 = 90) OutputScore = OutputScore = 优秀优秀; /; /优秀优秀 else else OutputScore = OutputScore = 良好良好; /; /良好良好 else else OutputScore = OutputScore = 中等中等; /; /中等中等 28C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3.1 条件语句 else else if (InputScore = 60) if (In
24、putScore = 60) OutputScore = OutputScore = 及格及格; /; /及格及格 else else OutputScore = OutputScore = 不及格不及格; /; /不及格不及格 Console.WriteLine( Console.WriteLine(百分制下百分制下00分经转换,为分经转换,为5 5分制下的分制下的1, 1, InputScore, OutputScore);InputScore, OutputScore); 29C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网
25、格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3.1 条件语句3. else if3. else if语句语句else ifelse if语句是语句是if if语句和语句和ifelseifelse语句的组合,其一般形式如下:语句的组合,其一般形式如下:if(if(表达式表达式1)1)语句语句1;1;else if(else if(表达式表达式2)2)语句语句2;2; else if(else if(表达式表达式n-1)n-1)语句语句n-1;n-1;elseelse语句语句n; n;说明:当表达式说明:当表达式1为为true时,执行时,执行语句语句1,然后跳过
26、整个结构执行下一条,然后跳过整个结构执行下一条语句;当表达式语句;当表达式1为为false时,将跳过时,将跳过语句语句1去判定表达式去判定表达式2。若表达式。若表达式2为为true,则执行语句,则执行语句2,然后跳过整个结,然后跳过整个结构去执行下一条语句,若表达式构去执行下一条语句,若表达式2为为false则跳过语句则跳过语句2去判定表达式去判定表达式3,依,依次类推,当表达式次类推,当表达式1、表达式、表达式2、表达式表达式n-1全为假时,将执行语句全为假时,将执行语句n,再转而执行下一条语句。再转而执行下一条语句。30C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综
27、治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3.1 条件语句【例例4-54-5】实现如下功能,检查输入字符是否为小写字符、大写字符或为数字,否则,输入字符不是数字字符。程序代码如下所示:using System;public class Character static void Main() Console.Write(Enter a character:); char c = (char)Console.Read();31C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综
28、治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3.1 条件语句 if (char.IsUpper(c) Console.WriteLine(The character is uppercase.); else if(char.IsLower(c) Console.WriteLine(The character is lowercase.); else if(char.IsDigit(c) Console.WriteLine(The character is number.); else Console.WriteLine(The chara
29、cter is not alphanumeric.); 32C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。引申:若转换大小写的程序,怎么实现?“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。/ 三种方法实现的。using System;using System.Collections.Generic;using System.Text;na
30、mespace 大小写转换 class Program static void Main(string args) /int x = Console.Read(); /char y = (char)x; /if (y = a & y = A & y = a & y = A & y = Z) / / x = x + 32; / /y = (char)x; /Console.WriteLine(y); char c = (char)Console.Read(); if (char.IsLower(c) c = char.ToUpper(c); Console.WriteLine(c); if (c
31、har.IsUpper(c) c = char.ToLower(c); Console.WriteLine(c); Console.ReadLine(); “雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。注意这个句子是错误的:char x = char.Parse(Console.Read();Console.Read()返回的是一个unicode编码值,而不是字符串。“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以
32、公共安全视频监控联网应用为重点的“群众性治安防控工程”。char x = Console.ReadKey().KeyChar;“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3.2 分支语句当判定的条件有多个时,如果使用else if语句将会让程序变得难以阅读。而分支语句(switch语句)提供一个更为简洁的语法,以便处理复杂的条件判定。switch语句的一般格式如下:switch(表达式)case 常量表达式1;语句1;break;case 常量表达式1;语句2;bre
33、ak;case 常量表达式n;语句n;break;default:语句n+1;break; 37C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3.2 分支语句说明:说明:(1)首先计算switch后面的表达式的值。(2)如果表达式的值等于“case 常量表达式1”中常量表达式1的值,则执行语句1,然后通过break语句退出switch结构,执行位于整个switch结构后面的语句;如果表达式的值不等于“case 常量表达式1”中常量表达式1的值,则判定
34、表达式的值是否等于常量表达式2的值,依次类推,直到最后一个语句。(3)如果switch后的表达式与任何一个case后的常量表达式的值都不相等,若有default语句,则执行default语句后面的语句n+1,执行完毕后退出switch结构,然后执行位于整个switch结构后面的语句;若无default语句则退出switch结构,执行位于整个switch结构后面的语句。38C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3.2 分支语句【例例4-64-6
35、】假设考查课的成绩按优秀、良好、中等、及格和不假设考查课的成绩按优秀、良好、中等、及格和不及格分为五等,但是实际的考试成绩是百分制的,分别对应的及格分为五等,但是实际的考试成绩是百分制的,分别对应的分数段为分数段为9010090100、80898089、70797079、60696069、059059。使用嵌。使用嵌套的套的switchswitch语句将考试成绩转换为考查课成绩。语句将考试成绩转换为考查课成绩。程序代码如下所示:程序代码如下所示:using System;using System; class TestScoreclass TestScore static void Main(
36、) static void Main() int InputScore; int InputScore; string OutputScore; string OutputScore; Console.WriteLine( Console.WriteLine(请输入百分制分数:请输入百分制分数:);); 39C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3.2 分支语句 InputScore = Convert.ToInt32(Console.Rea
37、dLine();InputScore = Convert.ToInt32(Console.ReadLine(); int temp=InputScore/10; int temp=InputScore/10; switch (temp) switch (temp) case 10: case 10: OutputScore = OutputScore = 优秀优秀; ; break; break; case 9: case 9: OutputScore = OutputScore = 优秀优秀; ; break; break; case 8: case 8: OutputScore = Out
38、putScore = 良好良好; ; break; break;40C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3.2 分支语句 case 7:case 7: OutputScore = OutputScore = 中等中等; ; break; break; case 6: case 6: OutputScore = OutputScore = 及格及格; ; break; break; default: default: OutputScore
39、= OutputScore = 不及格不及格; ; break; break; Console.WriteLine( Console.WriteLine(百分制下百分制下00分经转换,为分经转换,为5 5分制下的分制下的1,1, InputScore, OutputScore); InputScore, OutputScore); 说明:对比例4-4和本例的所示程序,可以发现在多分支选择结构中使用switch语句具有结构清晰、可读性强等优点。41C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网
40、应用为重点的“群众性治安防控工程”。 4.3.2 分支语句另外,针对C#中的switch语句说明以下几点:(1 1)case后面的常量表达式的类型必须与switch后面的表达式的类型相匹配,比如上例中都是整数类型。(2 2)如果在同一个switch语句中有两个或多个case后面常量表达式具有相同的值,将会出现编译错误。(3 3)在switch语句中,至多只能出现一个default语句。(4 4)在C#中,switch语句中的各个case语句及default语句的出现次序不是固定的,它们出现的次序不同不会对执行结果产生任何影响。(5 5)不允许遍历。在C#中,要求每个case语句后使用break
41、语句或跳转语句goto,即不允许从一个case自动遍历到其他case,否则编译时将报错。(6 6)在C#中,多个case语句可以共用一组执行语句。42C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3.2 分支语句以上面的程序代码为例,如将以上面的程序代码为例,如将switchswitch语句中的代码改为:语句中的代码改为:switch (temp)switch (temp) case 10: case 10: case 9: case 9: Outp
42、utScore = OutputScore = 优秀优秀; ; break; break; case 8: case 8: OutputScore = OutputScore = 良好良好; ; break; break; case 7: case 7: OutputScore = OutputScore = 中等中等; ; break; break; case 6:case 6: OutputScore = OutputScore = 及格及格; ; break; break; default: default: OutputScore = OutputScore = 不及不及格格; ; b
43、reak; break; 如此修改,使程序看起来更为简洁、明确。43C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3.3 选择结构的实例【例例4-74-7】要求输出要求输出112112月份的天数。在程序中,要对年份进月份的天数。在程序中,要对年份进行判定,判断该年份是否为闰年。行判定,判断该年份是否为闰年。程序代码如下所示:程序代码如下所示:using System;using System; class CountDaysNumberclass C
44、ountDaysNumber static void Main() static void Main() Console.WriteLine( Console.WriteLine(输入月份:输入月份:);); int i = int.Parse(Console.ReadLine(); int i = int.Parse(Console.ReadLine();44C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3.3 选择结构的实例 switch (i)
45、switch (i) case 1: case 1: case 3: case 3: case 5: case 5: case 7: case 7: case 8: case 8: case 10: case 10: case 12: case 12: Console.WriteLine(0 Console.WriteLine(0月有月有3131天天, i);, i); break; break; 45C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3
46、.3 选择结构的实例 case 4: case 4: case 6: case 6: case 9: case 9: case 11: case 11: Console.WriteLine(0 Console.WriteLine(0月有月有3030天天, i);, i); break; break;46C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 4.3.3 选择结构的实例 case 2: case 2: Console.WriteLine(2 Cons
47、ole.WriteLine(2月需要输入年份月需要输入年份:);:); int year = int.Parse(Console.ReadLine(); int year = int.Parse(Console.ReadLine(); / /判定是否为闰年判定是否为闰年 if (year % 4 = 0 & year % 100 != 0 | year % 400 = 0) if (year % 4 = 0 & year % 100 != 0 | year % 400 = 0) Console.WriteLine(0 Console.WriteLine(0年的年的11月有月有2929天天, y
48、ear,i);, year,i); else else Console.WriteLine(0 Console.WriteLine(0年的年的11月有月有2828天天, year, i);, year, i); break; break; 47C#程序设计实用教程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。/ 三种方法实现的。using System;using System.Collections.Generic;using System.Text;namespace 大
49、小写转换 class Program static void Main(string args) Console.WriteLine(请输入年份:); int year = int.Parse(Console.ReadLine(); bool leap = false; /leap闰年 if (year % 4 = 0 & year % 100 != 0 | year % 400 = 0) leap = true; Console.WriteLine(请输入月份:); int month = int.Parse(Console.ReadLine(); switch (month) case 1
50、: case 3: case 5: case 7: case 8: case 10: case 12: Console.WriteLine(0年1月有31天, year, month); break; case 2: if (leap) Console.WriteLine(0年1月有29天, year, month); break; else Console.WriteLine(0年1月有28天, year, month); break; default: Console.WriteLine(0年1月有30天, year, month); break; Console.ReadLine();