C#结构化程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C#程序设计实用教程
4.3.1 条件语句
3. else if语句 else if语句是if语句和if…else语句的组合,其一般形式如下: if(表达式1) 说明:当表达式1为true时,执行 语句1; 语句1,然后跳过整个结构执行下一条 else if(表达式2) 语句;当表达式1为false时,将跳过 语句2; 语句1去判定表达式2。若表达式2为 … true,则执行语句2,然后跳过整个结 else if(表达式n-1) 构去执行下一条语句,若表达式2为 语句n-1; false则跳过语句2去判定表达式3,依 else 次 类推,当表达式1、表达式2、…、 语句n; 表达式n-1全为假时,将执行语句n, 再转而执行下一条语句。
13 C#程序设计实用教程
4.2.4 顺序结构的实例
上面这段程序就是一个典型的顺序结构。
在Circle类的Main方法中,程序根据语句出现的顺序依次 执行,先是在程序中输入一个半径值,然后根据计算公式 计算出圆的面积,最后将圆的面积的值进行输出。
14
C#程序设计实用教程
4.3 选择结构
在实际的运算中,往往要进行复杂的逻辑判定,即 给出一些条件,让程序判定是否满足条件,并按不 同的情况让程序进行不同的处理。 比如,输入一个考试成绩,判定它是优、良、中、 及格或不及格等。或者输入两个字母,比较其ASCII 码的大小,然后根据不同的情况进行相应的处理。 这些问题是需要由程序按给定的条件进行比较和判 定,并按判定后的不同情况进行处理,这时就需要 用到选择结构。
{
a = c; } } else //这个else与if (k == 80) 相匹配 { a = d; }
注意:在此建议在应用 if…else嵌套语句时,即使 控制一条语句,也应该加 上一对“{}”。
26 C#程序设计实用教程
【例4-4】假设考查课的成绩按优秀、良好、中等、及格和不及
格分为五等,但是实际的考试成绩是百分制的,分别对应的分 数段为90~100、80~89、70~79、60~69、0~59。使用嵌套 的if…else语句将考试成绩转换为考查课成绩。
19 C#程序设计实用教程
4.3.1 条件语句
说明:在上例中,if条件表达式是判定x的取值是否小 于0,如果x小于0,则执行if语句的控制语句“y=-x”, 即将y赋值为x的绝对值;否则,不执行该控制语句, 而保持y为x的输入数。
20
C#程序设计实用教程
2. if…else语句 if…else语句是一种更为常用的选择语句。if…else语句 的语法如下: if(表达式) { 语句块1; }
7 C#程序设计实用教程
4.1.2 流程图
流程图(Flowchart),它是用一些几何框图、流向线和
文字说明来表示各种类型的操作。计算机算法可以用流 程图来表示,图4-1、图4-2、图4-3和图4-4是用流程图 表示了结构化程序设计的3种基本结构。
8
C#程序设计实用教程
4.2 顺序结构
顺序结构的流程图如图4-1所示,先执行A语句,再 执行B语句,两者是顺序执行的关系。A、B可以是 一个简单语句,也可以是一个基本结构,即顺序结 构、选择结构或者循环结构之一。 常用的简单语句包括空语句、复合语句、标签语句、 声明语句和表达式语句等。
27 C#程序设计实用教程
4.3.1 条件语句
if (InputScore >= 70) { if (InputScore >= 80) { if (InputScore >= 90) { OutputScore = "优秀"; //优秀 } else { OutputScore = "良好"; //良好 } } else { OutputScore = "中等"; //中等 }
9
C#程序设计实用教程
4.2.1 空语句
空语句是一种最简单的语句,它不实现任何功能,C#
的空语句的形式如下:
; 即只有一个分号的语句。在不需要执行任何操作但又 需要一条语句时,可以采用空语句来表示。
10
C#程序设计实用教程
4.2.2 复合语句
可以用{}把一些语句包括起来成为复合语句,或者称 为块。例如,下面就是一条复合语句: {
22
C#程序设计实用教程
下面通过一个实例来说 明if…else语句的用法。 【例4-3】根据输入的学 生成绩Score的值,显示 其是否及格。
using System; class Score { static void Main() { Console.WriteLine("请您输 入学生成绩:"); int Score = int.Parse(Console.ReadLine()) ;//转换为整数
18
C#程序设计实用教程
【例4-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<0) { y=-x; } Console.WriteLine("|{0}|= {1}", x, y); } }
if (Score >= 60) { Console.WriteLine("该成绩合 格。"); } else { Console.WriteLine("该成绩不 合格。"); } }
}
23
C#程序设计实用教程
4.3.1 条件语句
说明:上例中if语句和else语句后的大括号“{}”可 以省略,因为它们都只控制一条语句。但显而易见, 加上大括号,程序的结构更加分明。
24
C#程序设计实用教程
4.3.1 条件语句
如果程序的逻辑判定关系比较复杂,通常会用到if…else嵌套 语句,if语句可以嵌套使用,即在判定之中又有判定。其一般 形式如下: if(表达式1) if(表达式2) if(表达式3) ... 语句1; else 语句2; else 语句3; else 语句4;
“单入口单出口”的思想认为一个复杂的程序,如 果它仅是由顺序、选择和循环三种基本程序结构通 过组合、嵌套构成,那么这个新构造的程序一定是 一个单入口单出口的程序。
5 C#程序设计实用教程
4.1.1 结构化程序设计的概念及算法的概念
结构化程序设计的实质是控制编程中的复杂性。
在此,我们来关注一下程序设计的主要步骤:
28 C#程序设计实用教程
4.3.1 条件语句
}
else { if (InputScore >= 60) { OutputScore = "及格"; //及格 } else { OutputScore = "不及格"; //不及格 } } Console.WriteLine("百分制下{0}分经转换,为5分制下的{1}", InputScore, OutputScore); } } 29
int X, Y, Z; X = 9; Y = X + 10; Z = X * Y;
}
11
C#程序设计实用教程
4.2.3 标签语句
C#程序允许在一条语句前面使用标签前缀,其形式如 下:
标签名称:语句
标签语句主要用于配合goto语句来完成程序的跳转功 能,例如: if (X > 0) goto Large; X = -X; Large: return X;
第4章 结构化程序设计
本章主要介绍结构化程序设计的概念,三 种基本控制结构以及C#中的常用语句。 程序是由语句构成的,C#的常用语句包括: 简单语句、条件语句、分支语句、循环语 句、跳转语句等。 只有很好地掌握程序设计语言的各种语句, 才能构造正确的和结构良好、清晰的程序。
2
C#程序设计实用教程
{
语句块;
}
17
C#程序设计实用教程
4.3.1 条件语句
说明:如果表达式的值为true(即条件成立),则执行后 面的if语句所控制的语句块,如果表达的值为false(即条 件不成立),则不执行if语句控制的语句块。然后再执行 程序中的后一条语句。if语句的程序流程图如图4-5所示。 如果if语句只控制一条语句,则大括号“{}”可以省略。
在应用这种if…else结构时, 要注意else和if的配对关系,此配 对关系是:从第1个else开始,一 个else总是和它上面离它最近的 可配对的if配对。
25
C#程序设计实用教程
请看下例: if (i == 80) { if (j < 30) { a = b; } if (k > 100) { c = d; } else //这个else与if (k > 100)相匹配
4.3.1 条件语句
பைடு நூலகம்程序代码如下所示:
using System;
class TestScore { static void Main() { int InputScore; string OutputScore; Console.WriteLine("请输入百分制分数:"); InputScore = Convert.ToInt32(Console.ReadLine());
(1)分析问题。
(2)确定算法。 (3)画出程序流程图。 (4)编写程序。 (5)调试程序。 (6)建立健全的文档资料。
6
C#程序设计实用教程
4.1.1 结构化程序设计的概念及算法的概念
其中,关键问题在于第2个步骤,即“算法设计”。 所谓“算法”,粗略地讲,是为解决一个特定问题而 采取的确定的有限的步骤。这里所说的算法,是指计 算机能执行的算法。只有算法是正确的,写程序就不 会有太大的困难。 一个程序员应该掌握如何设计一个问题的算法或者采 用已有的可行算法。计算机算法可以采用流程图来表 示。
4.1 结构化程序设计的概念
结构化程序设计的主要观点是采用自顶向下、逐 步求精的程序设计方法; 使用三种基本控制结构构造程序,任何程序都是 由顺序、选择、循环三种基本控制结构进行构造 。
3
C#程序设计实用教程
4.1.1 结构化程序设计的概念及算法的概念
结构化程序设计是以模块化设计为中心,将待开发的
15 C#程序设计实用教程
4.3 选择结构
选择结构也是一种常用的基本结构,是根据所定
选择条件为真与否,而决定从各个不同的操作分 支中执行某一分支的相应操作。
常用的选择结构有条件语句和分支语句。
16
C#程序设计实用教程
4.3.1 条件语句
常用的条件语句有如下几种。
1. if语句 if语句是基于布尔表达式的值来判定是否执行后面的 内嵌的语句块,其语法形式如下: if(表达式)
12
C#程序设计实用教程
4.2.4 顺序结构的实例
【例4-1】编写程序计算圆的面积。
using System; namespace OrderStructure { class Circle { static void Main() { const double PI = 3.14159; double R, S; Console.WriteLine("请输入圆的半径:"); R = double.Parse(Console.ReadLine()); S = PI * R * R; Console.WriteLine("圆的面积为:{0}", S); } } }
4 C#程序设计实用教程
4.1.1 结构化程序设计的概念及算法的概念
结构化程序设计的基本思想是采用“自顶向下,逐 步求精”的程序设计方法和“单入口单出口”的控 制结构。
“自顶向下、逐步求精”的程序设计方法从问题本 身开始,经过逐步细化,将解决问题的步骤分解为 由基本程序结构模块组成的结构化程序框图;
软件系统划分为若干个相互独立的模块。
由于模块相互独立,因此在设计其中一个模块时,不 会受到其它模块的牵连,因而可将原来较为复杂的问 题化简为一系列简单模块的设计。 模块的独立性还为扩充已有的系统、建立新系统带来 了不少的方便。 按照结构化程序设计的观点,任何算法功能都可以通 过由程序模块组成的三种基本程序结构的组合:顺序 结构、选择结构和循环结构来实现。
4.3.1 条件语句
else
{ 语句块1; }
21 C#程序设计实用教程
4.3.1 条件语句
说明:如果表达式的值为true(即条件成立),则 执行后面的if语句所控制的语句块1,如果表达的值 为false(即条件不成立),则执行if语句控制的语句 块2。然后再执行程序中的后一条语句。if语句的程 序流程图如图4-6所示。