第4章 分支结构的程序设计
- 格式:doc
- 大小:196.00 KB
- 文档页数:11


第4章 分支结构的程序设计
本章重点
● if语句的三种形式
● if语句的应用
● if~else语句的应用
● if~else if语句的应用
● switch语句的程序流程
4.1 if语句的应用
if语句形式之一
if(表达式)
语句块
表达式
语句块 假(0)
真(非0)
图4.1 if语句流程图
例4.1:从键盘输入一批数,统计正数的和,当输入0时程序结束。
分析问题:通过循环输入整数,假设输入变量为x;然后要判断该数是否为0,如果不为0,再判断值是否大于零,如果大于零,加入和。
#include
int main( )
{
int x,sum=0;
scanf("%d",&x);
for( ; x ; scanf("%d",&x))
if(x>0) sum=sum+x;
printf("正数总和为:%d\n",sum);
return 0;
}
4.2 if~else语句的应用
if语句形式之二
if(表达式)
语句块1
else
语句块2
表达式
语句块2 语句块1 假 (0) 真 (非0)
图4.4 if…else语句流程图
例4.3:判断从键盘输入的数是正数还是负数,输入数0结束程序运行。
分析问题:数从键盘输入,输入的数如果大于0则输出“输入的数是正数”,如果是小于0则输出“输入的数是负数”,如果是等于0,则程序运行结束。
流程图如图4.5所示。
图4.5 程序流程图
#include
int main()
{
int x=1;
printf("\n请输入一整数(输入0程序退出):");
scanf("%d",&x);
while(x)
{
if(x > 0)
printf("输入的数%d是正数.\n",x);
else
printf("输入的数%d是负数.\n",x);
printf("\n请输入一整数(输入0程序退出):");
第四章 选择(分支)结构程序设计 C语言中实现选择结构的控制语句有两种:条件分支语句if和开关分支语句switch。
一.if语句的三种形式:
1、if(表达式)
语句;
即:条件为真,执行语句1
2、if(表达式) /* if 和 else是关键字,要小写 */
语句1;
else
语句2;
即:条件为真,执行语句1,否则执行语句2
3、 if(表达式1)
语句1;
else if(表达式2)
语句2;
else if(表达式3)
语句3;
„
else if(表达式n)
语句n;
注意以下几点:
①if 后面的条件可以是如下类型:
● 关系表达式,如x>y
● 逻辑表达式,如x>y&&y>z
● 算术表达式,如x+y
● 赋值表达式,如x=y
● 变量,如x
● 常量,如-5
②如果语句1或语句2是一条语句,则{}一对花括号可以省略 ③if„.else 是一条语句,else 不能单独出现,要注意else 与 if的搭配问题(既:else与其上面最近的且没使用的if搭配)
二.开关分支语句switch
1、形式
switch(表达式)
{ case 常量表达式1: 语句1;break;
case 常量表达式2: 语句2;break;
case 常量表达式3: 语句3;break;
„„
case 常量表达式n: 语句n;break;
default : 语句n+1;
}
2、执行过程
当表达式的值等于 “常量表达式1”时,执行语句1;
当表达式的值等于 “常量表达式2” 时,执行语句2;
„„
当表达式的值等于 “常量表达式n”时,执行语句n;
当表达式的值与“常量表达式1、常量表达式2„„常量表达式n”谁都不等时,就执行default后的语句.
注意以下几点:
1、表达式应该有括号,注意大括号一定要有并且注意配对。
2、表达式可以是整型常量或变量、字符常量或变量、关系表达式、逻辑表达式、整型的算术表达式,总之是整数,但是通常用整型或字符型。C语言计算表达式的值,然后找常量表达式的值匹配。
实验四 分支结构程序设计实验
一、实验目的
1.掌握分支结构程序设计的基本设计方法;
2.掌握条件转移指令和无条件转移指令的使用方法;
3.掌握指令对标志寄存器中各标志位的影响情况;
4.掌握多分支结构程序设计的三种方法:树型结构法、地址常数表法和指令常数表法。
二、实验要求
1.学会使用DEBUG的T命令,跟踪检查指令对标志位的影响情况;
2.学会使用DEBUG中的P命令,对INT指令的跟踪方法;
3.学会利用设置断点调试程序的方法;
4.了解大写、小写字母及数字在计算机内的表示方法及转换方法。
三、实验举例
【例3.4】编写程序,从键盘上输入三个一位十进制数据,找出其中大于平均值的数据,并
在屏幕上显示出来。
【解题思路】首先将三个数累加求和,再除3求出平均值,然后将三个数据分别与平均值进
行比较。三个已知数据的输入利用INT 21H的1号功能,大于平均值的数据利用INT 21H
的2号功能输出。
【步骤一】 启动EDIT编辑器,编辑源程序。
程序清单如下:
CSEG SEGMENT
ASSUME CS:CSEG
START: XOR BX,BX
MOV AH,01
INT 21H
MOV CH,AL ;第一个数据暂存CH中
SUB AL,30H
ADD BL,AL ;累加求和
MOV AH,01
INT 21H
MOV CL,AL ;第二个数据暂存CL中
SUB AL,30H
ADD BL,AL ;累加求和
MOV AH,01
INT 21H
MOV DH,AL ;第三个数据暂存DH中
SUB AL,30H
ADD AL,BL ;累加求和
XOR AH,AH
MOV BH,3
DIV BH ;求平均值
ADD AL,30H
MOV BL,AL ;平均值暂存BL中
CMP BL,CH ;与第一个数比较 JAE NEXT1
MOV DL,CH
MOV AH,02
INT 21H
1 / 3
实验四、分支结构程序设计
浙江大学城市学院实验报告
课程名称 VB程序设计根底与实验 实验工程名称 实验四、分支结构程序设计
学生姓名 专业班级 学号
实验成绩 指导老师〔签名 〕 日期
一. 实验目的和要求
1.掌握单分支与双分支条件语句IF的使用。 2.掌握多分支条件语句的使用。
3.掌握情况语句Select Case的使用及其与多分支条件语句的区别。
二. 实验内容和原理
【练习4-1】研究下面的代码段,画程序流程图,当输入93,81,74,65,42时,写出窗体中显示的结果。
Private Sub Form_Click()
score = Val(InputBox(\输入成绩\If score = 60 and score= 85 Then Print
\优秀\End sub 引伸1
假设把程序代码写成如下形式,画出它的流程图。问当输入成绩为90分时,显示什么结果?为什么?用嵌套块If语句应如何写?
Private Sub Form_Click()
score = Val(InputBox(\输入成绩\If score >= 85 Then st= \优秀\If score
= 85 Then
Print \优秀\ElseIf score >= 60 Then
Print \合格\Else
Print \不合格\End If End Sub
调试运行以上程序,采用单步跟踪的方法〔按F8〕查看程序执行流程,进一步加深对分支结构的理解。
【练习4-2】 研究下面的代码段。
Dim flag As Integer
If flag = 0 Then
Form1.Print \欢送使用Visual Basic!\flag = 1 2 / 3
’注①Dim falg as Integer