程序结构和流程控制语句
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
case 2:
case 3:d=7.5;break;
case 4:
case 5:
case 6:
case 7:d=10;break;
case 8:d=15;break;
}
f=m*(1-d/100.0);
cout<<"f="<<f<<endl;
system("pause");
return 0;
}
【例9】2005年修改后的《中华人民共和国个人所得税法》规定,个人所得,应纳个人所得税。具体办法是,每月收入总和扣除1600元后的金额为应缴纳所得税额,应纳税所得额不超过500元的税率为5%,超过500元至2000元的部分税率为10%,超过2000元至5000元的部分税率为15%,超过5000元至20000元的部分税率为20%超过20000元至40000元的部分税率为25%,超过40000元至60000元的部分税率为30%,超过60000元至80000元的部分税率为35%,超过80000元至100000元的部分税率为40%,超过100000元的部分税率为45%。现要求编写程序,从键盘上输入某人本月的总收入,输出应缴纳的税额。
语句格式
switch (<条件表达式>)
{
case <常量表达式1>:〔<语句1>〕
case <常量表达式2>:〔<语句2>〕
......
case <常量表达式n-1>:〔<语句n-1>〕
〔default:<语句n>〕
}
说明:
(1)条件表达式与常量表达式只能是整型或字符型表达式;
(2)每个case后面的常量表达式的值必须互不相同;
else if (<表达式2>) <语句3>
......
elseif (<表达式n-1>) <语句n-1>
else<语句n>
【例2】输入两个整数a和b,用单选条件语句实现输出其中较大的一个数。
程序流程图如右图所示。程序如下:
#include <iostream>
using namespace std;
else max=b;
cout<<"max="<<max<<endl;
system("pause");
return 0;
}
程序执行后提示:
Input a,b:38
max=8
【例4】已知下列分段函数,要求编一程序,输入x,输出相应的y的值。
分段函数
程序流程图如右图所示。程序代码如下:
#include <iostream>
int main()
{
int a,b,max;
cout<<"Input a,b:";
cin>>a>>b;
max=a;
if (b>max) max=b;
cout<<"max="<<max<<endl;
system("pause");
return 0;
}
程序执行后屏幕显示:
Input a,b:38
max=8
分支语句
分支语句用于实现分支程序设计。分支程序有两路分支结构和多路分支结构,两路分支结构可用if语句实现,多路分支结构可以用嵌套的if语句或switch语句实现。
1.if语句的三种形式
(1)单选条件语句
语句格式:if (<表达式>) <语句>
执行过程:当表达式的值为非0(真)时,执行语句,
否则不执行语句。
程序流程图及程序代码如下:
#include <iostream>
using namespace std;
int main()
{
float x,y;
cout<<"请输入一个实数x=";
cin>>x;
if (x>=0)
if (x>=10)
y=x*x*x;
else
y=x*x-5;
else
y=x+1;
cout<<"y="<<y<<endl;
case 1:cout<<"Monday\n";
case 2:cout<<"Tuesday\n";
case 3:cout<<"Wednesday\n";
case 4:cout<<"Thursday\n";
case 5:cout<<"Friday\n";
case 6:cout<<"Saturday\n";
【例7】输入0~6的整数,将其转换成对应的星期几。
程序代码如下:
#include <iostream>
using namespace std;
int main()
{ int a;
cout<<"请输入一个0-6的整数(分别对应周日至周六):";
cin>>a;
switch (a)
{
case 0:cout<<"Sunday\n";
(3)一个case后可有多个语句(不必用花括号),也可以没有任何语句。
注意:在执行switch语句的过程中,每当执行完一个case后面的语句后,程序会不加判断地自动执行下一个case后面的语句。每个case后面的常量表达式只起语句标号的作用,是switch语句中执行各语句的入口,并不在此进行条件判断
C++的语句类型
C++程序的组成:一个C++程序可以由若干个源程序文件组成,一个源程序文件可以有若干个函数和编译预处理命令组成,一个函数由函数说明部分和函数执行部分组成,函数执行部分由数据定义和若干个执行语句组成。语句是组成程序的基本单元。C++语言的语句可以分成以下六大类:
(1)说明语句:对变量、符号常量、数据类型的定义性说明
2.分支结构
(1)两路分支:在两种可能的操作中按条件选取一个执行的结构称为分支结构。
(2)多路分支:在多种可能的操作中按条件选取一个执行的结构称为分支结构,
3.循环结构:在人们所要处理的问题中常常遇到需要反复执行某一操作的情况,计算机实现这一操作的程序就要用到循环结构。
循环结构有两种形式,即当型循环结来自和直到型循环结构。{ if(a>b) return a;
else return b;
}
int main()
{ int a,b,m;
cout<<"Input a,b:";
cin>>a>>b;
m=max(a,b);//函数调用语句
cout<<"max="<<m<<endl;
system("pause");
return 0;
说明:
①表达式必须用“( )”括起来;
②语句只能是单个语句或复合语句。
(2)两选条件语句
语句格式:if (<表达式>)
<语句1>
else
<语句2>
执行过程:当表达式的值为非0(真)时,执行语句1,
否则执行语句2。
(3)多选条件语句
多选条件语句的格式为:
if (<表达式1>)<语句1>
elseif (<表达式2>) <语句2>
cin>>a>>b>>c;
if (a>b)
if (a>c)max=a;
elsemax=c;
else
if (b>c) max=b;
else max=c;
cout<<"a,b,c中最大的数max="<<max<<endl;
system("pause");
return 0;
}
2.switch语句(开关语句):实现多路分支程序。
if (<表达式1>)
{if (<表达式2>) <语句1> }
else
<语句2>
【例6】求三个整数a、b、c中的最大者,a、b、c由键盘输入。(自行完成)
#include <iostream>
using namespace std;
int main()
{
int a,b,c,max;
cout<<"请输入三个整数a,b,c:";
例如:int a,b,c;//定义整型变量a、b、c
①仅向编译系统提供说明信息,在程序执行期间并不执行任何操作。
如,定义变量语句int a,b,c;是告诉编译系统为变量a、b、c各分配4个字节的存储空间用于存放变量的值。程序执行时,该语句就不起任何作用了。
②说明语句可出现在函数内、外,允许出现语句的任何地方。
case 5:cout<<" Today is Friday\n";break;
case 6:cout<<" Today is Saturday\n";break;
default:cout<<"Input data error.\n";
注意:从开关语句的执行过程可知,任一开关语句均可用条件语句来实现,但并不是任何条件语句均可用开关语句来实现,这是由于开关语句限定了表达式的取值类型,而条件语句中的条件表达式可取任意类型的值。
(要求学生自行完成)
循环语句(共三种,即while,do…while和for)
case 1:cout<<" Today is Monday\n";break;
case 2:cout<<" Today is Tuesday\n";break;
case 3:cout<<" Today is Wednesday\n";break;
case 4:cout<<" Today is Thursday\n";break;
using namespace std;
int main()
{
float x,y;
cout<<"请输入一个实数x=";
cin>>x;
if (x<0) y=x+1;
else if (x<10) y=x*x-5;
else y=x*x*x;
cout<<"y="<<y<<endl;
system("pause");
cin>>m;
if (m>=2000) c=8;
m
c=m/250
d
m<250
0
0%
250≤m<500
1
5%
500≤m<1000
2,3
7.5%
1000≤m<2000
4,5,6,7
10%
m≥2000
8
15%
else c=m/250;
switch (c)
{ case 0:d=0;break;
case 1:d=5;break;
return 0;
}
程序执行后提示:
请输入一个实数x=3
y=4
2.if语句的嵌套
在if语句中又包含一个或多个if语句称为if语句的嵌套。其一般格式为:
if (<表达式1>)
if (<表达式2>)
<语句1>
else
<语句2>
else
if (<表达式3>)
<语句3>
else
<语句4>
【例5】使用if语句嵌套的方法实现【例4】
(6)复合语句(语句块):用{ }将若干语句括起来构成的语句。“{ }”后不再需要分号。
复合语句主要用于控制语句中。
例如:{t=a;a=b;b=t;}//实现a,b数值的交换。
程序的三种基本结构即顺序结构、分支结构和循环结构,都是通过语句来实现的。
1.顺序结构:按语句顺序依次执行的结构称为顺序结构。
default:cout<<"Input data error.\n";
}
system("pause");
return 0;
}
3.break语句:中止当前语句的执行,并跳转到下一条语句处执行。
语句格式:break;
若将上例程序中switch语句的内嵌代码改写如下,请分析结果;
case 0:cout<<" Today is Sunday\n";break;
【例3】输入两个整数a和b,用两选条件语句实现输出其中较大的一个数。
程序流程图如右图所示,程序代码如下:
#include <iostream>
using namespace std;
int main()
{
int a,b,max;
cout<<"Input a,b:";
cin>>a>>b;
if (a>b) max=a;
}
(4)表达式语句:由一个表达式后加一个分号构成一个语句。
例如:由一个赋值表达式加一个分号构成一个赋值表达式语句:y=x*x+2*x;
注意:i=i+1 //是一个赋值表达式
i=i+1;//是一个赋值语句
(5)空语句:;只有一个分号所构成的语句称为空语句。下面就是一个空语句:
;
空语句什么也不做,它将在特殊的时候是有用的,讲循环时再细讲。
(2)控制语句:能改变程序执行顺序完成控制功能的语句。
C++中控制语句主要有:
(3)函数和流对象调用语句:函数调用语句又一次函数调用加一个分号构成一个语句,如:
【例1】分析下面程序的功能:
#include <iostream>
using namespace std;
int max(int a,int b)//自定义函数
【例8】商店打折售货。购货金额数量越大,折扣越大。具体标准如下(m:购货金额,d:折扣率)。要求从键盘上输入购货金额,计算并输出实付的金额。
#include <iostream>
using namespace std;
int main()
{ int m,c;
float d,f;
cout<<"Input m:";
system("pause");
return 0;
}
程序执行后提示:
case 3:d=7.5;break;
case 4:
case 5:
case 6:
case 7:d=10;break;
case 8:d=15;break;
}
f=m*(1-d/100.0);
cout<<"f="<<f<<endl;
system("pause");
return 0;
}
【例9】2005年修改后的《中华人民共和国个人所得税法》规定,个人所得,应纳个人所得税。具体办法是,每月收入总和扣除1600元后的金额为应缴纳所得税额,应纳税所得额不超过500元的税率为5%,超过500元至2000元的部分税率为10%,超过2000元至5000元的部分税率为15%,超过5000元至20000元的部分税率为20%超过20000元至40000元的部分税率为25%,超过40000元至60000元的部分税率为30%,超过60000元至80000元的部分税率为35%,超过80000元至100000元的部分税率为40%,超过100000元的部分税率为45%。现要求编写程序,从键盘上输入某人本月的总收入,输出应缴纳的税额。
语句格式
switch (<条件表达式>)
{
case <常量表达式1>:〔<语句1>〕
case <常量表达式2>:〔<语句2>〕
......
case <常量表达式n-1>:〔<语句n-1>〕
〔default:<语句n>〕
}
说明:
(1)条件表达式与常量表达式只能是整型或字符型表达式;
(2)每个case后面的常量表达式的值必须互不相同;
else if (<表达式2>) <语句3>
......
elseif (<表达式n-1>) <语句n-1>
else<语句n>
【例2】输入两个整数a和b,用单选条件语句实现输出其中较大的一个数。
程序流程图如右图所示。程序如下:
#include <iostream>
using namespace std;
else max=b;
cout<<"max="<<max<<endl;
system("pause");
return 0;
}
程序执行后提示:
Input a,b:38
max=8
【例4】已知下列分段函数,要求编一程序,输入x,输出相应的y的值。
分段函数
程序流程图如右图所示。程序代码如下:
#include <iostream>
int main()
{
int a,b,max;
cout<<"Input a,b:";
cin>>a>>b;
max=a;
if (b>max) max=b;
cout<<"max="<<max<<endl;
system("pause");
return 0;
}
程序执行后屏幕显示:
Input a,b:38
max=8
分支语句
分支语句用于实现分支程序设计。分支程序有两路分支结构和多路分支结构,两路分支结构可用if语句实现,多路分支结构可以用嵌套的if语句或switch语句实现。
1.if语句的三种形式
(1)单选条件语句
语句格式:if (<表达式>) <语句>
执行过程:当表达式的值为非0(真)时,执行语句,
否则不执行语句。
程序流程图及程序代码如下:
#include <iostream>
using namespace std;
int main()
{
float x,y;
cout<<"请输入一个实数x=";
cin>>x;
if (x>=0)
if (x>=10)
y=x*x*x;
else
y=x*x-5;
else
y=x+1;
cout<<"y="<<y<<endl;
case 1:cout<<"Monday\n";
case 2:cout<<"Tuesday\n";
case 3:cout<<"Wednesday\n";
case 4:cout<<"Thursday\n";
case 5:cout<<"Friday\n";
case 6:cout<<"Saturday\n";
【例7】输入0~6的整数,将其转换成对应的星期几。
程序代码如下:
#include <iostream>
using namespace std;
int main()
{ int a;
cout<<"请输入一个0-6的整数(分别对应周日至周六):";
cin>>a;
switch (a)
{
case 0:cout<<"Sunday\n";
(3)一个case后可有多个语句(不必用花括号),也可以没有任何语句。
注意:在执行switch语句的过程中,每当执行完一个case后面的语句后,程序会不加判断地自动执行下一个case后面的语句。每个case后面的常量表达式只起语句标号的作用,是switch语句中执行各语句的入口,并不在此进行条件判断
C++的语句类型
C++程序的组成:一个C++程序可以由若干个源程序文件组成,一个源程序文件可以有若干个函数和编译预处理命令组成,一个函数由函数说明部分和函数执行部分组成,函数执行部分由数据定义和若干个执行语句组成。语句是组成程序的基本单元。C++语言的语句可以分成以下六大类:
(1)说明语句:对变量、符号常量、数据类型的定义性说明
2.分支结构
(1)两路分支:在两种可能的操作中按条件选取一个执行的结构称为分支结构。
(2)多路分支:在多种可能的操作中按条件选取一个执行的结构称为分支结构,
3.循环结构:在人们所要处理的问题中常常遇到需要反复执行某一操作的情况,计算机实现这一操作的程序就要用到循环结构。
循环结构有两种形式,即当型循环结来自和直到型循环结构。{ if(a>b) return a;
else return b;
}
int main()
{ int a,b,m;
cout<<"Input a,b:";
cin>>a>>b;
m=max(a,b);//函数调用语句
cout<<"max="<<m<<endl;
system("pause");
return 0;
说明:
①表达式必须用“( )”括起来;
②语句只能是单个语句或复合语句。
(2)两选条件语句
语句格式:if (<表达式>)
<语句1>
else
<语句2>
执行过程:当表达式的值为非0(真)时,执行语句1,
否则执行语句2。
(3)多选条件语句
多选条件语句的格式为:
if (<表达式1>)<语句1>
elseif (<表达式2>) <语句2>
cin>>a>>b>>c;
if (a>b)
if (a>c)max=a;
elsemax=c;
else
if (b>c) max=b;
else max=c;
cout<<"a,b,c中最大的数max="<<max<<endl;
system("pause");
return 0;
}
2.switch语句(开关语句):实现多路分支程序。
if (<表达式1>)
{if (<表达式2>) <语句1> }
else
<语句2>
【例6】求三个整数a、b、c中的最大者,a、b、c由键盘输入。(自行完成)
#include <iostream>
using namespace std;
int main()
{
int a,b,c,max;
cout<<"请输入三个整数a,b,c:";
例如:int a,b,c;//定义整型变量a、b、c
①仅向编译系统提供说明信息,在程序执行期间并不执行任何操作。
如,定义变量语句int a,b,c;是告诉编译系统为变量a、b、c各分配4个字节的存储空间用于存放变量的值。程序执行时,该语句就不起任何作用了。
②说明语句可出现在函数内、外,允许出现语句的任何地方。
case 5:cout<<" Today is Friday\n";break;
case 6:cout<<" Today is Saturday\n";break;
default:cout<<"Input data error.\n";
注意:从开关语句的执行过程可知,任一开关语句均可用条件语句来实现,但并不是任何条件语句均可用开关语句来实现,这是由于开关语句限定了表达式的取值类型,而条件语句中的条件表达式可取任意类型的值。
(要求学生自行完成)
循环语句(共三种,即while,do…while和for)
case 1:cout<<" Today is Monday\n";break;
case 2:cout<<" Today is Tuesday\n";break;
case 3:cout<<" Today is Wednesday\n";break;
case 4:cout<<" Today is Thursday\n";break;
using namespace std;
int main()
{
float x,y;
cout<<"请输入一个实数x=";
cin>>x;
if (x<0) y=x+1;
else if (x<10) y=x*x-5;
else y=x*x*x;
cout<<"y="<<y<<endl;
system("pause");
cin>>m;
if (m>=2000) c=8;
m
c=m/250
d
m<250
0
0%
250≤m<500
1
5%
500≤m<1000
2,3
7.5%
1000≤m<2000
4,5,6,7
10%
m≥2000
8
15%
else c=m/250;
switch (c)
{ case 0:d=0;break;
case 1:d=5;break;
return 0;
}
程序执行后提示:
请输入一个实数x=3
y=4
2.if语句的嵌套
在if语句中又包含一个或多个if语句称为if语句的嵌套。其一般格式为:
if (<表达式1>)
if (<表达式2>)
<语句1>
else
<语句2>
else
if (<表达式3>)
<语句3>
else
<语句4>
【例5】使用if语句嵌套的方法实现【例4】
(6)复合语句(语句块):用{ }将若干语句括起来构成的语句。“{ }”后不再需要分号。
复合语句主要用于控制语句中。
例如:{t=a;a=b;b=t;}//实现a,b数值的交换。
程序的三种基本结构即顺序结构、分支结构和循环结构,都是通过语句来实现的。
1.顺序结构:按语句顺序依次执行的结构称为顺序结构。
default:cout<<"Input data error.\n";
}
system("pause");
return 0;
}
3.break语句:中止当前语句的执行,并跳转到下一条语句处执行。
语句格式:break;
若将上例程序中switch语句的内嵌代码改写如下,请分析结果;
case 0:cout<<" Today is Sunday\n";break;
【例3】输入两个整数a和b,用两选条件语句实现输出其中较大的一个数。
程序流程图如右图所示,程序代码如下:
#include <iostream>
using namespace std;
int main()
{
int a,b,max;
cout<<"Input a,b:";
cin>>a>>b;
if (a>b) max=a;
}
(4)表达式语句:由一个表达式后加一个分号构成一个语句。
例如:由一个赋值表达式加一个分号构成一个赋值表达式语句:y=x*x+2*x;
注意:i=i+1 //是一个赋值表达式
i=i+1;//是一个赋值语句
(5)空语句:;只有一个分号所构成的语句称为空语句。下面就是一个空语句:
;
空语句什么也不做,它将在特殊的时候是有用的,讲循环时再细讲。
(2)控制语句:能改变程序执行顺序完成控制功能的语句。
C++中控制语句主要有:
(3)函数和流对象调用语句:函数调用语句又一次函数调用加一个分号构成一个语句,如:
【例1】分析下面程序的功能:
#include <iostream>
using namespace std;
int max(int a,int b)//自定义函数
【例8】商店打折售货。购货金额数量越大,折扣越大。具体标准如下(m:购货金额,d:折扣率)。要求从键盘上输入购货金额,计算并输出实付的金额。
#include <iostream>
using namespace std;
int main()
{ int m,c;
float d,f;
cout<<"Input m:";
system("pause");
return 0;
}
程序执行后提示: