第三章基控制结构程序设计 结构化程序设计的特点是任何程序都可由三种基 本结构及其组合来描述,这三种分别是顺序结构、 选择结构和循环结构。本章将介绍c++分支结构和 循环结构的设计方法。这两种结构分别用C++提供 的两类流程控制语句分支语句和循环语句来实现。 所谓流程控制语句,是专门用来控制程序执行流程 的语句,也称为过程化语句。在介绍分支语句、循 环语句及其程序设计的同时,还将介绍一些常用算 法,并通过实例实践结构化程序设计的方法
ok 第三章 基本控制结构程序设计 结构化程序设计的特点是任何程序都可由三种基 本结构及其组合来描述,这三种分别是顺序结构、 选择结构和循环结构。本章将介绍C++分支结构和 循环结构的设计方法。这两种结构分别用C++提供 的两类流程控制语句分支语句和循环语句来实现。 所谓流程控制语句,是专门用来控制程序执行流程 的语句,也称为过程化语句。在介绍分支语句、循 环语句及其程序设计的同时,还将介绍一些常用算 法,并通过实例实践结构化程序设计的方法
第三章基碑控制结构程序设计 3.1分支结构程序设计 3.2循环结构程序设计 3.3转向语句 k 3.4常用算法的应用实例
ok 第三章 基本控制结构程序设计 3.1 分支结构程序设计 3.4 常用算法的应用实例 3.3 转向语句 3.2 循环结构程序设计
31分文结构程序贸计 对程序的运行流程进行控制,主要通过某些条 件进行判断来执行不同的语句。分支语句是三种 基本流程控制语句之一。C++提供以下三种分支 语句: 3.1.1i£语句 3.1.2条件运算符“?:〃 k 3 2 swL
ok 3.1 分支结构程序设计 对程序的运行流程进行控制,主要通过某些条 件进行判断来执行不同的语句。分支语句是三种 基本流程控制语句之一。C++提供以下三种分支 语句: 3.1.1 if语句 3.1.2 条件运算符“?:” 3.2.1 swich语句
3.1.1if语句 if语句有三种格式为: 1、if() 2、() else 3、i() 国else近()7 ■■■■■ 回 else if(); ese语句n+1
ok 3.1.1 if 语句 if语句有三种格式为: 1、if() ; 2、if() ; else ; 3、if() ; else if () ; …… else if () ; else 语句n+1;
【例3.1】输入一个年份,判断是否闰年 算法分析:假定年份为yeax,闰年的条件是: year号4==0&&year号100!=0||year400==0。 #include void main() t int yeari eout>year; if(year4==0&&year100!=0 lyear号400==0) cout<<yeax<<"是闰年"<<end1; else cout<<year<<"不是闰年"<<endl; k
ok 【例3.1】输入一个年份,判断是否闰年。 算法分析:假定年份为year, 闰年的条件是 : year%4==0&&year%100!=0||year%400==0。 #include void main( ) { int year; cout>year; if(year%4==0&&year%100!=0 ||year%400==0) cout<<year<<"是闰年"<<endl; else cout<< year<<"不是闰年"<<endl; ok }
【例3.2】从键盘上输入三个整数,输出其中的最大数。 分析:读入三个数,先求出两个数中较大者,再将该大数与 第三个数比较,求出最大数。 include class ThreeNumber t private int a, b, c public: void Input3Integers o; void GetMaxo int maino threeNumber ai a.Input3Integerso; k a. GetMaxor return O: }
ok 分析:读入三个数,先求出两个数中较大者,再将该大数与 第三个数比较,求出最大数。 #include class ThreeNumber { private: int a, b, c; public: void Input3Integers(); void GetMax(); }; int main() { ThreeNumber a; a.Input3Integers(); a.GetMax(); return 0; } 【例3.2】 从键盘上输入三个整数,输出其中的最大数
void ThreeNumber:: Input3Integers( cout > a>>b>>c int ThreeNumber :: GetMax o int max; if(a >b) if(a> c) max else max =Ci else if(b > c max = b else max cout < WThe Max Integers is < max < endl; t yo
ok void ThreeNumber::Input3Integers() { cout > a >> b >> c; } int ThreeNumber::GetMax() { int max; if(a > b) if(a > c) max = a; else max = c; else if(b > c) max = b; else max = c; cout << “The Max Integers is :” << max << endl; }
主£语句中,如果内嵌语句又是立语句,就构 成了嵌套让f语句。主语句可实现二选一分支,而 嵌套i语句则可以实现多选一的多路分支情况。 嵌套有两种形式,第一种是嵌套在ese分支中: if() else if()语句2; else if e1se; 第二种是嵌套在主f分支中为: 1f()if(); e1se<语句2 k 我们可以见上面的 GetMax()函数
ok if 语句中,如果内嵌语句又是if语句,就构 成了嵌套if语句。if 语句可实现二选一分支,而 嵌套if语句则可以实现多选一的多路分支情况。 嵌套有两种形式,第一种是嵌套在else分支中: if () ; else if () 语句2; else if … else ; 第二种是嵌套在if分支中为: if () if () ; else ; 我们可以见上面的 GetMax()函数
要特别注意e1se和i£的配对关系。C++规定了 i£和e1se的“就近配对”原则,即相距最近且还 没有配对的一对主£和e1se首先配对。按上述规定, 第二种嵌套形式中的e1se应与第二个主配对。如 果根据程序的逻辑需要改变配对关系,则要将属于 同一层的语句放在一对“〔}"中。如第二种嵌套形 式中,要让e1se和第一个i£配对,语句必须写成: if(表达式1) if(表达式2)语句1; e1se语句2; 第二种嵌套形式较容易产生逻辑错误,而第 种形式配对关系则非常明确,因此从程序可读性 角度出发,建议尽量使用第一种嵌套形式
ok 要特别注意else和if的配对关系。C++规定了 if和else的“就近配对”原则,即相距最近且还 没有配对的一对if和else首先配对。按上述规定, 第二种嵌套形式中的else应与第二个if配对。如 果根据程序的逻辑需要改变配对关系,则要将属于 同一层的语句放在一对“{}”中。如第二种嵌套形 式中,要让else和第一个if配对,语句必须写成: if (表达式1) { if (表达式2) 语句1 ; } else 语句2 ; 第二种嵌套形式较容易产生逻辑错误,而第 一种形式配对关系则非常明确,因此从程序可读性 角度出发,建议尽量使用第一种嵌套形式
请看以下两个语句://语句1: i£(n为3==0) if(n号5==0) eout<<n<<是15的倍数”<<endl; e⊥se cout<<n<<是3的倍数但不是5的倍数 <<endl //语句2 if(n号3==0) if(n号5==0) eout<<n<<是15的倍数 l<<endl i e1 se cout<<n<<不是3的倍数" 两个语句的差别只在于一个“”,但表达的逻辑关系却完 k 全不同
ok 请看以下两个语句://语句1: if(n%3==0) if(n%5==0) cout<<n<<“是15的倍数”<<endl; else cout<<n<<“是3的倍数但不是5的倍数″ <<endl; //语句2: if(n%3==0){ if(n%5==0) cout<<n<<“是15的倍数″<<endl; } else cout<<n<<“不是3的倍数″ 两个语句的差别只在于一个“{}”,但表达的逻辑关系却完 全不同