第三章流程控制语句
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
else 语句3 ;
else 语句4;
若表达式1的值为非0 ,即真,则执行中层if—else结构;否则,执行语句4。 执行中层时,若表达式2的值为非0 ,即真,则执行内层if—else结构;否则, 执行语句3。 执行内层时,若表达式3的值为非0 ,即真,则执行语句1;否则,执行语 句2。
if_Байду номын сангаасlse 嵌套流程图
一、if语句的简单分支
语句:if(表达式) 语句
表达式为任意表达式
若有多条语句,则要构成复合语句
执行:计算 表达式的值,若为真(不为0) 则执行语句;否则不执行语句
真
表达式
假
语句
例3.1.1:求x的绝对值
#include<iostream.h>
void main()
#include<math.h>
本章主要内容:
§3.1 if 语句——双分支语句 §3.2 switch 语句——多分支语句) §3.3 for语句 (当型循环) §3.4 while 语句 (条件循环) §3.5 do--while语句 (直到型循环) §3.6 跳转语句
§3.1 if 语句——条件语句
一、if语句的简单格式 二、if语句的双分支格式 三、if语句的嵌套
cout<<“please input the year:”; cin>>year;
#include<iostream.h> void main() {char ch; cin>>ch; if(ch>=‘A’&&ch<=‘Z’)ch=ch+32; cout<<ch; ch = (ch> = ‘A’ && ch< = ‘Z’) ? (ch+32) : ch }
二、if语句的双分支
语句: if(表达式) 语句1 else 语句2
(2)嵌套 else if
if(表达式1) 语句1;
else if(表达式2) 语句2;
else if(表达式3) 语句3;
….
else if(表达式n) 语句n;
else 语句n+1 ;
/*前面n个条件均
不成立,执行语句n+1*/
else_if 嵌套流程图
例3.1.4 :编写程序计算函数
x*x-4 (x<=0) y = x (0<x<=3)
x*x+4 (x>3)
解: 根据题目的三个区间,两个判断点,形成三分支,可采用三种选择结构设计。
方法1:else_if 嵌套结构设计 方法2: 三个并列的if结构设计 方法3:if_else嵌套结构设计
方法1 :else_if 嵌套结构----源程序:
#include<iostream.h>
void main()
方法2 三个并列的if 结构------源程序
#include<iostream.h> void main() { int x,y;
cout<<“please enter the number:”;
cin>>x; if (x>3) y=x*x+4; if (x>0&&x<=3) y=x; if (x<=0) y=x*x-4;
• 能被4整除,也能被100整除,也能被400整除: 是闰年
真
year被4整除
假
真
year被100整除
假
真
year被400整除
假
leap=1
leap=0
leap=1
leap=0
真 输出“闰年”
leap
假
输出“非闰年”
#include<iostream.h> void main() { int year;
流程控制语句用来控制程序的 执行过程,它包括以下三种语句:
• 选择:用来解决实际应用中按不同情况进行不同 处理的问题.包括: if语句 和 switch语句
• 循环:用来解决实际应用中需要重复处理的问题. 包括: for语句、 while语句 和 do语句
• 跳转:用来改变顺序向下执行的正常顺序.包括: goto 、continue 、break 和 return语句
cout<<“y=“<<y<<endl; }
注:这种方法是判区间法。
方法3:if_else嵌套结构设计
#include<iostream.h>
void main()
{ int x,y;
cout<<“please enter the number:”;
cin>>x;
if (x>0)
if (x<=3) y=x;
执行:若表达式的值不为0,执行语句1,否则 执行语句2 入口
真
假
表达式
语句1
语句2
出口
例3.1.3:输入两个数a,b,若a 大,则输出a的平
方,若b大,输出b 。
#include<iostream.h>
void main()
{
int a,b,x;
cin>>a>>b;
if(a>b)
x=a; x*=x;
{ int x,y;
cout<<“please enter the number:”;
cin>>x;
if(x>3)
y=x*x+4; else if(x>0)
//X>3
y=x;
else
y=x*x-4;
cout<<“y=“<<y<<endl; // 0<X<=3
}
//X<=0
注:这种方法是判判断点法 各条件互相关联形成区间 要考虑条件成立与不成立
{
int x,absx;
cout<<“please input x=“;if(x>=0) absx=x;
cin>>x;
else absx=-x;
absx=x;
if(x<0) absx=-x; absx=abs(x)
cout<<“x=“<<x<<endl;
cout<<“|x|=”<<absx;
}
例3.1.2:C若为大写字母,则把它变为小写字母, 否则为c本身。
{x=a;x*=a;}
else
x=b;
cout<<x;
}
复合语句一定要加大括号
三、if 语句的嵌套(处理多分支问题)
嵌套的两种形式:
(1) 嵌套 if—else (2) 嵌套 else if
(1) 嵌套 if—else
外层
if(表达式1) if(表达式2)
if(表达式3)语句1;
中层
内层
else 语句2 ;
注:这种方法也是判判断点法
else y=x*x+4;
else
各条件互相关联形成区间 要考虑条件成立与不成立
y= x*x-4;
cout<<“y=“<<y<<endl;
}
例3.1.5:输入年份,判断是否为闰年,若是,
回答“Yes”,否则回答“No”。 什么样的年份是闰年?
• 能被4整除:是闰年
• 能被4整除,也能被100整除:不是闰年