C++大学基础教程第三章课件_第1页
C++大学基础教程第三章课件_第2页
C++大学基础教程第三章课件_第3页
C++大学基础教程第三章课件_第4页
C++大学基础教程第三章课件_第5页
已阅读5页,还剩63页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C++大学基础教程第3章C++控制语句

2023/10/61C++大学基础教程第3章C++控制语句2023/10/61用计算机解决实际问题,首先要分析问题,设计合适的算法,然后编程实现算法。2023/10/62用计算机解决实际问题,首先要分析问题,设计合适的算法,然后编第3章C++控制语句3.1算法的基本控制结构3.2if选择语句3.3switch选择语句3.4循环语句3.5循环嵌套3.6应用举例2023/10/63第3章C++控制语句3.1算法的基本控制结构2023/13.1算法的基本控制结构

2023/10/643.1算法的基本控制结构2023/10/643.1算法的基本控制结构算法

1、计算机执行的操作2、这些操作的顺序

伪码、流程图伪码

采用类似计算机语言的分句格式,以自然语言描述算法。

2023/10/653.1算法的基本控制结构算法2023/10/653.1算法的基本控制结构流程图以图形符号直观

开始/结束执行判断联系2023/10/663.1算法的基本控制结构流程图以图3.1算法的基本控制结构程序的三种基本控制结构

(1)顺序结构(2)选择结构(分支结构)(3)循环结构2023/10/673.1算法的基本控制结构程序的三种基本控制结构2023/13.1算法的基本控制结构流程控制语句

选择语句:if..else、switch

循环语句:while、for、do..while

转向语句:break、continue2023/10/683.1算法的基本控制结构流程控制语句2023/10/683.2if选择语句

2023/10/693.2if选择语句2023/10/693.2if选择语句if_else语句基本语法

if(表达式)

语句1; else

语句2;2023/10/6103.2if选择语句if_else语句基本语法2023/103.2if选择语句if_else

1、没有else分支

2、双分支3、多分支4、if

语句的嵌套2023/10/6113.2if选择语句if_else2023/10/6113.2if选择语句1、没有else分支例如:比较x和y的大小,如果x大则输出x的值if(表达式)语句;if(x>y)cout<<x<<endl;2023/10/6123.2if选择语句1、没有else分支if(表达式)if2、双分支例如:比较x,y的大小,将较大的数输出

if(表达式)语句1;else

语句2;if(x>y)cout<<x<<endl;else

cout<<y<<endl;3.2if选择语句2023/10/6132、双分支if(表达式)if(x>y)3.例子

任意输入一个4位整数的年份,判断该年是否是润年?

是指年份能被4整除的那些年,但不包括能被100整除而不能被400整除的年2023/10/614例子任意输入一个4位整数的年份,判断该年是否是润年#include<iostream>usingnamespacestd;voidmain(){ intyear; cin>>year;

if((year%4==0)&&!((year%100==0)&&(year%400!=0))) cout<<"润年"<<endl; else cout<<"不是润年"<<endl;}2023/10/615#include<iostream>2023/10/6153.2if选择语句3、多分支if(表达式1)语句1;

elseif(表达式2)

语句2;

elseif(表达式3)

语句3;…

else

语句n;2023/10/6163.2if选择语句3、多分支if(表达式1)2023/12023/10/6172023/10/617例子:输出学生的成绩#include<iostream>usingnamespacestd;voidmain(){ intx;cin>>x;

if(x>=90)cout<<“优秀”<<endl;elseif(x>=80)

cout<<“良好”<<endl;

elseif(x>=60)cout<<“合格”<<endl;elsecout<<“不及格”<<endl;}2023/10/618例子:输出学生的成绩#include<iostream>23.2if选择语句4、if语句的嵌套if(表达式1)

if(表达式2)语句1

else

语句2elseif(表达式3)语句3

else

语句42023/10/6193.2if选择语句4、if语句的嵌套if(表达式1)22023/10/6202023/10/620例子:输出a,b,c中较大的数#include<iostream>usingnamespacestd;voidmain(){ inta,b,c;cin>>a>>b>>c;

if(a>b) { if(a>c)cout<<a<<endl; elsecout<<c<<endl; } else { if(b>c)cout<<b<<endl; elsecout<<c<<endl; }}cout<<(a>b?(a>c?a:c):(b>c?b:c));2023/10/621例子:输出a,b,c中较大的数#include<iostr3.2if选择语句注意:二义性intx=-1;if(x>0)if(x<50)cout<<“xis<50”endl;elsecout<<“xis<=0”<<endl;

if和else的对应关系,else总是与离它最近的if匹配。{}2023/10/6223.2if选择语句注意:二义性if和else的对3.3switch选择语句

2023/10/6233.3switch选择语句2023/10/6233.3switch选择语句switch(表达式){case常量表达式1:语句1

break;

case常量表达式2:语句2

break;┇case常量表达式n:语句n

break;default:语句n+1}跳出switch语句2023/10/6243.3switch选择语句switch(表达式)跳出sw2023/10/6252023/10/625例子:输出学生的成绩

intx;cin>>x;

switch(x/10){case10:case9:cout<<“优秀”<<endl;

break;case8:cout<<“良好”<<endl;

break;case7:case6:cout<<“合格”<<endl;

break;default:cout<<“不及格”<<endl; }2023/10/626例子:输出学生的成绩intx;cin>>x;2

switch(表达式){ case9: case8: case‘*’:case‘$’: case0.1:

}表达式值可为整型字符型、枚举型,但不能为实型2023/10/627switch(表达式)表达式值可为整型字符型、枚举型

switch(m/10) { case9:a+=1; case8:a+=1; case7:a+=1; case6:a+=1; cout<<“通过”<<endl;break; default cout<<“不通过”<<endl;

}2023/10/628 switch(m/10)2023/10/6283.4循环语句

2023/10/6293.4循环语句2023/10/6293.4循环语句三种基本语法 1、while语句 2、do…while语句 3、for语句2023/10/6303.4循环语句三种基本语法2023/10/630#include<iostream>#include<iomanip>usingnamespacestd;voidmain(){cout<<setfill('*') <<setw(2)<<'\n' <<setw(3)<<'\n' <<setw(4)<<'\n' <<setw(5)<<'\n' <<setw(6)<<'\n' <<setw(7)<<'\n' <<setw(8)<<'\n';}****************************2023/10/631#include<iostream>*20#include<iostream>#include<iomanip>usingnamespacestd;voidmain(){inti=2;cout<<setfill('*');

while(i<=8) {cout<<setw(i)<<'\n';i++;}}****************************循环变量循环体循环控制条件2023/10/632#include<iostream>*循环3.4循环语句主要包括3个部分:1、循环控制条件:判断循环操作是否进行的条件;2、循环体:重复进行的操作;3、循环控制变量:记录循环体执行的次数,或控制循环的结束条件。2023/10/6333.4循环语句主要包括3个部分:2023/10/6333.4循环语句while循环语句while(表达式)循环体语句;2023/10/6343.4循环语句while循环语句while(表达式)202例1:编程循环输出1-9这9个数字?

#include<iostream>usingnamespacestd;voidmain(){inti=1;

while(i<10){cout<<i<<endl;i++;}cout<<“循环结束”<<endl;}运行结果:123456789循环结束 2023/10/635例1:编程循环输出1-9这9个数字?#include<例2:编程计算1+2+3+….+10的值

#include<iostream>usingnamespacestd;voidmain(){intsum=0,i=1;

while(i<=10){sum+=i;i++;}

cout<<sum<<endl;}552023/10/636例2:编程计算1+2+3+….+10的值#include例3:打印ASCII码表中的可视字符#include<iostream>usingnamespacestd;voidmain(){unsignedcharch=32;while(ch<128){cout<<(int)ch<<'\t'<<ch<<'\t';ch++; }}2023/10/637例3:打印ASCII码表中的可视字符#include<ios例4:编程计算的值#include<iostream>usingnamespacestd;voidmain(){ intk=1,sum=0,n; cout<<"inputn(n>0):"; cin>>n;

while(k<=n){sum=sum+k*k;k++; } if(n>0) cout<<sum/n<<endl; else cout<<"n不能<=0"<<endl;}2023/10/638例4:编程计算的值#include<iostr3.4循环语句do..while循环语句

do{

循环体语句;}while(表达式);2023/10/6393.4循环语句do..while循环语句do2023/1#include<iostream>#include<iomanip>usingnamespacestd;voidmain(){inti=2;cout<<setfill('*');

do {cout<<setw(i)<<'\n';i++; }while(i<=8);}****************************2023/10/640#include<iostream>*20例子:编程计算的值#include<iostream>usingnamespacestd;voidmain(){ intk=1,sum=0,n; cout<<"inputn(n>0):"; cin>>n;

do {sum=sum+k*k;k++; }while(k<=n); if(n>0) cout<<sum/n<<endl; else cout<<"n不能<=0"<<endl;}2023/10/641例子:编程计算的值#include<iostrea3.4循环语句for循环语句

循环结构

1、表达式1循环变量初始化;

2、表达式2

循环控制条件;3、表达式3循环变量的变化;for(表达式1;表达式2;

表达式3)循环体;2023/10/6423.4循环语句for循环语句for(表达式1;表达式2例1:编程循环输出1-9这9个数字?

#include<iostream>usingnamespacestd;voidmain(){

for(inti=1;i<10;i++)cout<<i<<endl;

cout<<“循环结束”<<endl;}运行结果:123456789循环结束2023/10/643例1:编程循环输出1-9这9个数字?#include<例2:编程计算1+2+3+….+10的值

#include<iostream>usingnamespacestd;voidmain(){intsum=0;

for(inti=1;i<=10;i++)sum+=i;

cout<<sum<<endl;}运行结果:55 2023/10/644例2:编程计算1+2+3+….+10的值#include#include<iostream>#include<iomanip>usingnamespacestd;voidmain(){cout<<setfill('*');}****************************例3for(inti=2;i<=8;i++)cout<<setw(i)<<'\n';2023/10/645#include<iostream>*例33.4循环语句——for语句1、<表达式1>省略意味着赋初值提前

for(inti=1;i<=9;i++)

循环体;

inti=1;for(;i<=9;

i++)

循环体;2023/10/6463.4循环语句——for语句1、<表达式1>省略意味着赋初3.4循环语句——for语句2、<表达式2>省略,用break跳出循环for(inti=1;i<=9;i++)

循环体;

for(inti=1;;i++){

if(i<=9)循环体;

else

break;//跳转语句,用来跳出循环}2023/10/6473.4循环语句——for语句2、<表达式2>省略,用bre3.4循环语句——for语句3、<表达式3>省略:for(inti=1;i<=9;i++)

循环体;

for(inti=1,j=2;i<=9;){

循环体;i++;}2023/10/6483.4循环语句——for语句3、<表达式3>省略:20233.4循环语句——for语句3、<表达式1><表达式3>同时省略

for(inti=1;i<=9;i++)

循环体;

inti=1;

for(;i<=9;){

循环体;i++;}2023/10/6493.4循环语句——for语句3、<表达式1><表达式3>3.4循环语句——for语句5、极端情况,可实现无限循环

for(;;){循环体;}2023/10/6503.4循环语句——for语句5、极端情况,可实现无限循环2例4:判断输出结果?#include<iostream>usingnamespacestd;voidmain(){

for(inti=0,j=10,k=0;i<j;i++,j--) k+=i*j; cout<<k<<endl;}分析:ijk010019928253746467055 跳出2023/10/651例4:判断输出结果?#include<iostream>分3.4循环语句1、for:

最适合循环次数固定,循环规律非常明显程序。2、while:

使用最多最频繁的循环结构,具有普适性。3、do_while:

最适合至少循环一次的循环结构。2023/10/6523.4循环语句1、for:2023/10/6523.4.4转向语句1、break语句2、continue语句2023/10/6533.4.4转向语句1、break语句2023/10/6533.4.4转向语句——break用途:

常用在while、do-while、for和switch语句中,用来跳出循环或switch语句。2023/10/6543.4.4转向语句——break用途:2023/10/65例1:判断输出结果?#include<iostream>usingnamespacestd;voidmain(){ intsum=0;for(inti=1;i<10;i++) { if(i%3==0)break; sum+=i; } cout<<sum<<endl;}分析isum11233跳出

2023/10/655例1:判断输出结果?#include<iostream>分3.4.4转向语句——continue用途用于循环语句中,结束本次循环,进行下一次循环;即跳过循环体中尚未执行的部分。2023/10/6563.4.4转向语句——continue用途2023/10/例1:判断输出结果?#include<iostream>usingnamespacestd;voidmain(){ intsum=0;for(inti=1;i<10;i++) { if(i%3==0)continue; sum+=i; } cout<<sum<<endl;}分析isum11233371212192727跳出 2023/10/657例1:判断输出结果?#include<iostream>分3.5循环嵌套

2023/10/6583.5循环嵌套2023/10/6583.5循环嵌套编程输出国际象棋棋盘#include<iostream>usingnamespacestd;voidmain(){

for(inti=0;i<8;i++) { for(intj=0;j<8;j++) { if((i+j)%2==0) cout<<"■";else cout<<""; } cout<<"\n"; }}■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■2023/10/6593.5循环嵌套编程输出国际象棋棋盘■■■■思考题目:使用For循环输出如下图形:

* ** *** **********************2023/10/660思考题目:使用For循环输出如下图形:2023/10/66#include<iostream>usingnamespacestd;voidmain(){for(inti=1;i<=7;i++){ for(intj=7;j>i;j--) cout<<''; for(j=1;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论