第3章 流程控制与算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
赋值语句是程序中的基本语句,表达形式如下:
3.2 顺序结构
赋值表达式;
1.单赋值语句 单赋值语句是程序中最常见的形式,例如: k=0; label1.text=”您好!”; 2.复合赋值语句 复合赋值语句就是在复合赋值表达式的基础上加上分号“;”。例如: int k=2; int y+=k; string s1=“hi“; label1.text+=s1; 3.连续赋值语句 连续赋值语句是在一条语句中使用多个赋值号为多个变量同时赋值。例如: x=y=z=100; label1.text=label2.text=label3.text=””;
【例3-5】判断一个整数x是奇数还是偶数,输出判断结果。
3.多分支If语句
3.3 选择结构
对于超过2种情况的判断,使用多分支if语句,多分支if语句的语法形 式如下:
条件表达式 1 true
false 条件表达式 2 true false

false 条件表达式 n true 语句块n false
的值匹配,则执行default 后面的语句块。
3.3选择结构
3.关于switch语句的说明
控制表达式的值只计算一次。 case后面的常量表达式必须是唯一的。 switch后面的“表达式”,只能是基本数据类型,如sbyte、 short、int、char和枚举型,也可以是string型常量, case后面的必须是常量表达式,如1,或“1”, 各case及default子句的先后次序,不影响程序执行结果。 C#不支持从一个case标签贯穿执行到另一个case标签,因此,每 个case语句块后面都必须跟一个break语句。但是当该case块中 没有任何代码时,空的case标签可以贯穿到另一个。这种情况下 多个case语句可以共享一段语句块。
【例3-8】根据百分制成绩输出学生成绩等级:90分以上为A;80~89 分为B;70~79分为C;60~69分为D;60以下为E。
3.3.3 选择结构典型例题
3.3 选择结构
【例3-9】输入三个整数a、b、c,将其按从小到大的顺
序输出。
【例3-10】输入一个年份,判断这一年是否是闰年。 【例3-11】给定的三个边长,判断是否构成三角形。如 果构成三角形的话,是什么形式的三角形:普通三角 形、等腰三角形及等边三角形等。
3.3 选择结构
说明: ① 多分支if语句的执行过程为:首先计算条件表达式1的值,如果为 true时,执行语句块1;否则:计算条件表达式2的值,如表达式2 的值为true时,执行语句块2,否则,计算条件表达式3的值…如果 所有的条件表达式的值都不为true,则执行else后面的语句块n+1。 ② 条件表达式1和条件表达式2是必要的参数,其他参数可选。 ③ 注意在else和if之间有空格,不要连在一起写成:elseif的形式。 ④ 语句块1、语句块2…都可以是一条语句或多条语句。
int i;
i = Console.Read(); 输入:ab
则i的值为97
3.2 顺序结构 (2) ReadLine()方法 ReadLine()方法的使用格式: Console.ReadLine() 功能:
从标准输入流(键盘)读取一行字符串(回车代表输入结 束),返回值为string型。
例如:
【例3-12】输入年份,判断今年的生肖,如2012年为龙
年。
3.4 循环结构
3.4.1循环语句简介
3.4 循环结构
C#中可以实现的循环的语句有:for语句、while语句、
do…while语句和for each语句。
3.4.2 for语句
3.4 循环结构
表达式1
for语句适合于循环次数可知的循环结
3.4 循环结构
3.1.1 什么是算法
算法就是解决问题的方法和步骤。
3.1 算法的概念
一个算法应当具有以下几个方面的特点:
(1) 有穷性:算法的有穷性是指一个算法的执行步骤必须是有限 次的。 (2) 确切性:算法的每一个步骤必须有确切的定义。 (3) 有0个或多个输入:一个完整的程序应该包含数据输入、数 据处理、数据输出三个部分。 (4) 有一个或多个输出:数据处理后的结果必须输出用户才可以 分析该程序是否正确,所以一个正确的算法至少有一个输出。
3.2.2 输入与输出
(1) Write()方法 Write()方法一般使用形式:
3.2 顺序结构
Write(格式字符串[,表达式列表])
功能:按照格式字符串指定的格式,输出表达式的值。 说明: ① 格式字符串是由双引号括起来的字符串,其中含有两种字符:
普通字符:在输出的时候原样输出。 格式字符:在输出时会被指定的表达式的值所取代。
(5) 可行性:算法的每一步都必须是可行的,
3.1.2描述算法
3.1 算法的概念
表述算法的方法有很多,如:自然语言、流程图、伪代码等 【例3-1】给定一个成绩,判断其属于哪个等级,90分以上为A; 60~89为B;60分以下为C。 1. 自然语言描述 Step1:输入一个成绩score。
Step2:如果score大于等于90,输出成绩所属等级:A,转到第5 步;否则转到第3步。
算法,往往既可以使用格式1的形式实现,也可以使用格式2的形式
实现。 ④ if语句允许嵌套,但嵌套的层数不宜太多。 【例3-6】给定一个成绩,判断其是哪个等级,90分以上为A;60~89 为B;60分以下为C。
3.3.2 switch语句
1.switch的语法格式 switch(控制表达式) { case 常量表达式1: 语句块1;break;
第3章
流程控制与算法
C#采用的是面向对象的编程思想,但在模块内部的流
程控制上仍采用结构化程序设计的思想。
结构化程序设计的基本思想为:自顶向下、逐步求精、
模块化。每一个结构化程序由三种基本结构(顺序 结构、选择结果、循环结构)中的一种或多种组成。
本章目录
3.1 算法的概念
3.2 顺序结构 3.3 选择结构
语句块1
语句块2
语句块n+1
其他语句 图3-11 多分支if语句的流程图
3.3 选择结构
多分支if语句的语法形式如下
if(条件表达式1) { 语句块1; } else if(条件表达式2) { 语句块2; }

else if(条件表达式n) { 语句块n; } else { 语句块n+1; }
⑤ 不管有几个分支,程序执行了其中一个分支后,其余分支不再执
行。
4.if语句的嵌套
3.3 选择结构
在一个if语句中又包含一个或多个if语句称为if语
句的嵌套。嵌套的if语句既可以出现在if后面的语
句块中,也可以出现在else后面的语句块中。
3.3 选择结构
格式1 if(条件表达式1) { if(条件表达式2) { 语句块1; } else { 语句块2; } } else { 语句块3; } 格式2: if(条件表达式1) { 语句块1; } else { if(条件表达式2) { 语句块2; } else { 语句块3; } }
3.2.3 顺序结构典型例题
3.2 顺序结构
【例3-2】输入两个变量a、b的值并将其交换后输
出。
【例3-3】输入圆柱体的底半径和高,求底面积和
体积。
3.3 选择结构
C#中的使用选择结构的语句有:

3.3 选择结构
if语句 switch语句。
3.3.1 if语句
1.单分支if语句 单分支if语句的语法形式如下:
if(条件表达式) { 语句块;
3.3 选择结构
条件表达式 true 语句块
false
}
图3-7 单分支if语句执行过程
说明: ① if语句的执行过程为:首先计算条件表达式的值,如果表达式值为 true,则执行语句块,否则执行if结构后面的语句。 ② 条件表达式可以关系表达式、逻辑表达式,也可以是逻辑常量。 ③ 语句块可以是一条或多条,如果是多条语句,必须用大括号括起来; 只有一条语句时,大括号可以省略。 【例3-4】输入三个整数a、b、c,求三个数中的最大值并输出。
WriteLine()方法使用形式与Write()方法完全相同,区别只
在于WriteLine()方法调用后会换行。例如:
int i = 3, j = 5;
Console.WriteLine("i={0}",i);
Console.WriteLine("j={0}", j);
输出结果为:
i=3 j=5
3.2 顺序结构
3.3 选择结构
说明: ① 在if语句的嵌套结构中,一定要注意else与if的匹配关系。在嵌 套结构中,else子句总是与在它上面、距它最近、且尚未匹配的if 配对。
② 为明确匹配关系,避免匹配错误,建议将内嵌的if语句,一律用
大括号括起来。 ③ 不管是格式1还是格式2出现的嵌套语句,其本质并无差别,一个
② 格式字符必须按照顺序{0}、{1}、{2}……显示,而且格式字符的个 数应和表达式列表中的表达式数对应。 ③ 表达式列表可以省略,例如:Console.Write("Hello"); ④ Write()方法调用后并不能换行,如果想换行输出,可以自己手动添 加换行符“\n”。
3.2 顺序结构
(2) WriteLine()方法
2.双分支if语句
双分支if语句是最常用的选择结构, 语法形式如下:
3.3 选择结构
if(条件表达式) { 语句块1; } else { 语句块2; }
tru e
条件表达 式
fals e
语句块1
语句块2
图3-10 双分支if语句执 行过程
3.2 选择结构
说明:
① 双分支if语句的执行过程为:首先计算条件表达式的值,如果表 达式值为true,则执行语句块1,否则执行语句块2。 ② 和单分支if语句一样,双分支if语句的条件表达式可以关系表达 式、逻辑表达式,也可以是逻辑常量(true、false)。 ③ 语句块1和语句块2可以是一条或多条,如果是多条语句,必须用 大括号括起来。 ④ 在双分支if语句中,else子句(可选)是if语句的一部分,必须与 if配对使用,不能单独出现。
string s1 = Console.ReadLine();
输入:Hello,则s1的值为Hello。
注意ReadLine()方法得到的是一个字符串,如果需要输入其 他类型的数据,需要将字符串转换为对应类型。例如: int i = Convert.ToInt32(Console.ReadLine());
3.3 选择结构
case
常量表达式2:
语句块2;break; ......
case
常量表达式n:
语句块n;break; default: 语句块n+1;break; }
3.3 选择结构
2.switch语句的执行过程
计算控制表达式的值,然后用控制表达式的值和case后面的
“常量表达式”比较,当表达式的值与某个case后面的 “常量表达式”的值匹配时,就执行该case后面的语句块, 直到遇到到break语句时,跳出switch语句。 如果没有任何一个case后面的常量表达式的值与控制表达式
输出等级:A
输出等级:B
输出等级:C
结束 图3-2 【例3-1】算法的流程图表示
3.2.1 顺序结构
顺序结构是三种结构中最简单
3.2 顺序结构
的结构,如图为顺序结构的流
程图。顺序结构按照语句的书 写顺序执行,每一条语句都会 被执行到,不存在任何分支。
A
B
图3-3 顺序结构流程图
3.2.1 赋值语句
Step3:如果score大于等于60并且小于等于89 ,输出成绩所属等 级:B,并转到第5步;否则转到第4步。 Step4:输出成绩所属等级:C。 Step5:程序结束。
2. 流程图
开始
3.1 算法的概念
Fra Baidu bibliotek输入score
score>=90? Y
N score>=60&& score<=89 Y N
构。 1. for语句的格式
for(表达式1;表达式2;表达式3)
{ 循环体 }
表达式2 true 循环体 表达式3
false
图3-18 for语句的执行过程
(1) Read()方法 Read()方法的使用格式为: Console.Read()
功能:
从标准输入流(键盘)读取一个字符,并作为函数值返回,如果没有可 用字符,返回-1。 说明: Read()方法调用一次只能接受一个字符,返回值为int型,如果返回的 字符不是数字,将返回该字符的ASCII码值, 例如:
相关文档
最新文档