大家好!在对
程序控制结构有了一点了解之后呢,我们这一讲来学习 C#中的分支结构控制语句。
分支结构也叫做选择结构, 它是指程序在满足一定条件下才能够执行的这种程序结构。
或者说程序满足某一个条件就走一路;满足另外一条件,又走另外一路,
这种按设定条件两路或者多路执行的程序结构。
分支结构有单分支、 两分支或者多分支程序结构。
在C#语言中,分支程序是通过if-else或者switch语句来实现的。
用if语句实现单分支控制结构的方法是这样:
当if后边圆括号中的条件表达式的条件满足的时候,会执行下边的语句序列; 如果不满足,就直接跳过。
这里的语句序列 也称为分程序,可以是一条语句或者若干条语句。
也可以包含if-else语句,甚至循环语句。
用if-else语句可以实现两分支的控制结构。
它的执行过程是这样:当条件表达式的条件满足的时候,我们执行语句序列1。
否则,就执行语句序列2。
为了帮助大家理解 整个分支程序的控制过程,我们下边来看两个示例。
第一个例子是这样:要求输入两个 实数,按照数值由小到大的次序输出这两个数。
在Visual Studio中新建项目之后,我们能够看到系统自动搭建的这个结构。
按照题目的要求,我们定义两个实数类型的变量和一个用于存放中间结果的变量。
然后显示输出一条提示信息,输出这样的提示信息主要的目的是 希望能够让程序显得比较友好。
然后我们就输入两个实数。
这里头用到了Convert类的Todouble方法, 将输入的两个字符型的数值转换为双精度类型的实数。
下边我们就对这两个数进行比较。
如果x大于y,那么我们把它作一个交换; 否则,也就说如果x不大于y的话,就直接输出。
因为题目要求只比较两个数的大小,所以这是一个单分支结构的程序。
我们再来做一个练习。
这个题目是要求在3个整数中找最大值,并且输出。
这个题目的算法流程应该是这样: 首先输入3个整数,x,y,z。
如果x大于y,那么我们再比较一下x是不是大于z。
如果x又大于z,那么显然x就是最大值,就输出x; 否则呢,显然z就是最大值,就输出z。
那么如果x不大于y,也就说x如果小于y的话, 那么我们来比较一下y是不是大于z。
同样的,如果y大于z,那么y是最大值;否则,z就是最大值,就输出z。
由这个算法流程图我们可以看出来,这是由三个两分支结构构成的程序,
可以用if-else语句来实现,这就是程序代码。
请大家注意,这里这里同样用到了
Convert类的ToInt32方法,将键盘输入的字符型数据转换为整型数。
这个程序中没有考虑3个数出现相等的情况。
也就是说如果存在比如x等于y或者y等于z,这样的情况该怎么处理呢?
这个问题留着大家自己来考虑。
用if-else语句还可以实现多分支结构控制,
它的格式是这样:当条件表达式1的值等于True的话,那么
就执行语句块1;如果条件表达式2的值等于True,那么就执行语句块2, 等等,依次类推。
整个 这个程序的控制结构,我们可以用这样的算法流程来表示。
除了用if-else语句外,在某些 情况下,多分支结构程序的控制也可以用switch语句实现。
switch语句的格式是这样:switch后边圆括号中是整型表达式,
它根据表达式的运算结果来决定执行的路径。
这是switch语句的控制流程。
它的执行过程是首先计算整型表达式的值, 将表达式的值与每个case后的数值常量进行比较。
如果相等,就执行这个case后面的语句序列。
然后通过break语句来结束;如果表达式的值与所有case后边的数值都不相等,
那么就执行default后面的语句。
这是利用switch语句实现的一个多分支程序的例子。
程序的功能是根据输入的成绩等级给出分数范围。
比如如果你输入的B,那么程序就会执行红颜色的这行语句。
它会显示你的成绩在80到89分之间。
这个就是程序的输出结果。
好,下边我们对分支结构控制语句作一个小结。
在C#中,分支结构控制是通过if-else或者switch语句来实现的。
if-else语句的后边 的圆括号中是条件表达式,它的执行结果就是
真或者假;而switch语句后边圆括号中的表达式 必须是整型表达式。
所有的分支程序不论是单分支、 两分支还是多分支,实际上都可以通过if-else语句来实现,
也就是说if-else语句可以替代switch语句。
好,有关分支程序控制,我们就讲到这里。
[空白音频]