2019级郭炜C课件第三章_第1页
2019级郭炜C课件第三章_第2页
2019级郭炜C课件第三章_第3页
2019级郭炜C课件第三章_第4页
2019级郭炜C课件第三章_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、,冰岛公路边冰川,第三章条件分支结构之if语句,有时,并非所有的程序语句都要被顺序执行到,会希望满足某种条件就执行这部分语句,满足另一条件就执行另一部分语句。这就需要“条件分支结构”,条件分支结构,if(表达式1)语句组1elseif(表达式2)语句组2/可以有多种个elseifelseif(表达式n-1)语句组n-1else语句组n,if语句,依次计算表达式1、表达式2只要碰到一个表达式i为真,则执行语句组i(前面为假的表达式对应的语句组不会被执行),后面的表达式不再计算,后面的语句组也都不会被执行。若所有表达式都为假,则执行语句组n,可以没有elseif,也可以没有else,也可以都没有,

2、if语句,if(表达式1)语句组1else语句组2,if(表达式1)语句组1elseif(表达式2)语句组2,if(表达式1)语句组1,如果“语句组”只有一条语句,可以不用,if语句,if(n4)printf(%d,n);,例题:写一个判断整数奇偶性的程序,要求输入一个整数,如果是奇数,就输出“Itsodd.”,如果是偶数,就输出“Itseven.”。#includeusingnamespacestd;intmain()intn;scanf(%d,if语句,例题:写一个判断整数奇偶性的程序,要求输入一个整数,如果是奇数,就输出“Itsodd.”,如果是偶数,就输出“Itseven.”。#inc

3、ludeusingnamespacestd;intmain()intn;scanf(%d,if语句,else总是和离它最近的if配对#includeusingnamespacestd;intmain()inta;scanf(%d,输入-1,程序无输出!,if语句嵌套,intmain()inta;scanf(%d,输入-1,输出bad,例题:请写一个程序,该程序输入一个年份,根据该年份是否是建国整十周年、建党整十周年以及是否是闰年给出不同的输出。,if语句嵌套,/建国整十/建党整十,#includeusingnamespacestd;intmain()intyear;scanf(%d,elsei

4、f(year%4=0,inta=0;if(a=0)/a=0的值是0printf(hello);if(a=5)/a=5的值是5printf(Hi);=Hi,if语句常见错误,互相矛盾的多个条件,如果确实只希望执行其中一个分支,应该用if和多个elseif,而不要写多个ifinta=0;if(a=0elseif(a10case常量表达式2:语句组2break;case常量表达式n:,语句组nbreak;default:语句组n+1,“表达式”的值等于哪个“常量表达式”,就执行相应的语句组。都不相等,则执行default的语句组。也可以没有default分支“常量表达式”里面不能包含变量!,21,s

5、witch语句,例题:请写一个程序,接受一个整数作为输入,如果输入1,则输出“Monday”,输入2,则输出“Tuesday”输入7,则输出“Sunday”,输入其他数,则输出“Illegal”。,22,#includeusingnamespacestd;intmain()intn;scanf(%d,23,case5:printf(Friday);break;case6:printf(Saturday);break;case7:printf(Sunday);break;default:printf(Illegal);return0;,24,switch语句,switch语句在进入某个case分

6、支后,会一直执行到第一个碰到的“break;”,即使这个“break;”是在后面的case分支里面。果没有碰到“break;”,则会向下一直执行到switch语句末尾的“”,包括“default:”部分的语句组也会被执行。,25,#includeusingnamespacestd;intmain()intn;,scanf(%d,1case1case2or32case2or33case2or3,26,循环结构之for循环,冰岛黛提瀑布,for(表达式1;表达式2;表达式3)语句组,for循环语句,计算“表达式1”。计算“表达式2”,若其值为true,则执行“”中的语句组,然后转到3);若为fal

7、se,则不再执行“”中的语句组,for语句结束,转到5)。计算“表达式3”。转到2)。从for语句后面继续往下执行程序。一般用于将某段代码(语句组)重复执行若干次!,28,for循环语句,例:连续输出26个字母,inti;,for(i=0;i26;+i)coutchar(a+i);/a+i强制转换成char类型,或,for(inti=0;iabcdefghijklmnopqrstuvwxyz,循环控制变量,循环控制变量,29,for循环语句,循环控制变量定义在表达式1中,则其只在for语句内部起作用,可以不用担心循环控制变量重名inti=5;for(inti=0;i26;+i)coutchar

8、(a+i);coutendl;for(inti=0;i26;i+=2)/循环控制变量并非每次只能加1coutchar(A+i);coutendl;coutn;for(inti=1;i=n;+i)if(n%i=0)coutin;for(inti=n;i=1;-i)if(n%i=0)coutiendl;return0;,1515531,33,for循环语句,for循环可以嵌套,形成多重for循环:for(inti=0;inm;,for(inti=1;in;+i),/取第一个数,共n-1种取法,for(intj=i+1;j=n;+j)/第二个数要比第/一个数大,以免取法重复if(m%(i+j)=0)

9、+total;couttotal;return0;,37,for循环语句,for语句括号里面的“表达式1”,“表达式2”,“表达式3”任何一个都可以不写,甚至可以全都不写,但是“;”必须保留。,/假设i在for前已经有合理值,for(;i100;+i)couti;,for(;)couthellon;,maxN=n;minN=n;,while(n)if(nmaxN)if(nn;,coutmaxNminNa;,/输入a,要求a的平方根,if(a=0)doublex=a/2,lastX=x+1+EPS;/确保能够进行至少一次迭代while(x-lastXEPS|lastX-xEPS)/只要精度未达要求,/就继续迭代lastX=x;x=(x+a/x)/2;coutx;elsecouta;,/输入a,要求a的平方根,if(a=0)doublex=a/2,lastX=x+1+EPS;/确保能够进行至少一次迭代while(x-lastXEPS|lastX-xEPS)/只要精度未达要求,/就继续迭代lastX=x;,x=(x+a/x)/2;,coutx;,else,coutItcantbenagitive.;return0;,输入2时,EPS取值输出结果11.50.11.416670.011.414220.0011.414210.00011.41421,如果希望循环至少要执行一次,就可

温馨提示

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

评论

0/150

提交评论