1、 本章内容本章内容 程序的三种基本结构程序的三种基本结构 C+C+语句语句 选择结构选择结构 循环结构循环结构 跳转语句跳转语句 计算计算顺序结构顺序结构结束结束开始开始输入输入输出输出y=xx+1x10 x10分段函数分段函数语句体语句体1条件成条件成立吗?立吗?语句体语句体2成立成立不成立不成立选择结构(分支结构)选择结构(分支结构)条件条件循环体循环体成立成立不不成成立立(退出循环)(退出循环)条件条件循环体循环体成成立立不成立不成立 循环结构循环结构思考:思考:对对110000内的所有偶数求和。内的所有偶数求和。1 1)判断一个数判断一个数是否是偶数,奇是否是偶数,奇数绕过不计算数绕过
2、不计算 (?(?结构结构)2 2)求)求1000010000内的偶数内的偶数 (?(?结构结构)程序基本结构程序基本结构顺序结构:顺序执行顺序结构:顺序执行分支结构:按条件选择性执行分支结构:按条件选择性执行循环结构:按条件循环循环结构:按条件循环结构化程序设计一般都是由这三种结构化程序设计一般都是由这三种结构进行简单衔接、复合、嵌套等结构进行简单衔接、复合、嵌套等方法组成的。方法组成的。结构化程序只有一个入口和出口结构化程序只有一个入口和出口C+C+语句语句说明语句说明语句 (如:函数原型声明)(如:函数原型声明)表达式语句表达式语句 (m+=5;)复合语句复合语句 (a=b+c;f=a+d
3、;)控制语句控制语句 (选择,循环,转移)选择,循环,转移)函数调用语句函数调用语句 (strcpy(s1,s2)流对象调用语句流对象调用语句 (coutaendl;)选择结构选择结构 if 语句语句形式形式1:if(表达式表达式)语句体语句体形式形式2:if(表达式表达式)语句体语句体1else语句体语句体2形式形式3:if (表达式表达式1)语句体语句体1else if(表达式表达式2)语句体语句体2else if(表达式表达式3)语句体语句体3 else语句体语句体n+1 switch语句语句#include void main()int a;couta;if(a0)a*=a;cout”
4、a=”aendl;#include void main()int a;couta;if(a0)a*=a;/Tab键键 或空格缩进或空格缩进 cout”a=”aendl;例例1 1:一个数,若为正数则原样输出;若为负一个数,若为正数则原样输出;若为负数求平方后输出。数求平方后输出。(演示)演示)请输入一个整数:请输入一个整数:12 a=12 第第1次执行程序:次执行程序:第第2次执行程序:次执行程序:请输入一个整数:请输入一个整数:-5 a=25 if(表达式表达式)语句体语句体 if 语句形式语句形式1:if 语句语句#include/求方程实根求方程实根#include void main(
5、)double a,b,c,x1,x2,d,t;coutabc;d=b*b-4*a*c;t=sqrt(d);x1=(-b+t)/(2*a);x2=(-b-t)/(2*a);cout“x1=x1“,x2=”x2endl;#include#include void main()double a,b,c,x1,x2,d,t;coutabc;d=b*b-4*a*c;if(d=0)t=sqrt(d);x1=(-b+t)/(2*a);x2=(-b-t)/(2*a);cout“x1=x1;cout“,x2=”x2endl;if(表达式表达式)语句体语句体表达式表达式语句体语句体非非00注意:注意:所谓所谓“
6、语句体语句体”应该是一个应该是一个复合语句复合语句。所谓所谓“复合语句复合语句”是指若干语句用大括号是指若干语句用大括号括括在一起,从形式上视为一句。在一起,从形式上视为一句。当复合语句中只有一句时,可以省略大括号。当复合语句中只有一句时,可以省略大括号。if(表达式)(表达式)语句体语句体1else 语句体语句体2 语句体语句体1表达式表达式语句体语句体2非非00 if 语句语句形式形式2:if-else语句语句语句体语句体1、语句体、语句体2同样应该是同样应该是复合语句复合语句。#include#include void main()double a,b,c,x1,x2,d,t;couta
7、bc;d=b*b-4*a*c;if(d0)cout“没有实数根没有实数根;else t=sqrt(d);x1=(-b+t)/(2*a);x2=(-b-t)/(2*a);cout“x1=x1“,x2=”x2endl;#include#include void main()double a,b,c,x1,x2,d,t;coutabc;d=b*b-4*a*c;if(d=0)t=sqrt(d);x1=(-b+t)/(2*a);x2=(-b-t)/(2*a);cout“x1=x1“,x2=”x2endl;else cout“没有实数根没有实数根;if 语句可以语句可以“嵌套嵌套”#include#inc
8、lude void main()double a,b,c,x1,x2,d,t;coutabc;d=b*b-4*a*c;if(d0)cout“没有实数根没有实数根;else if(d=0)x1=-b/(2*a);cout“唯一实根唯一实根x=”x1endl;else t=sqrt(d);x1=(-b+t)/(2*a);x2=(-b-t)/(2*a);cout“实根实根x1=”x1“,实根实根x2=”x2=0)if(b=0)couta/bendl;else couta*b=0)if(b=0)couta/bendl;else couta*b=0)if(b=0)couta/bendl;else cou
9、ta*b=0)if(b=0)couta/bendl;else couta*bendl;输出输出-25 if(表达式表达式1)语句体语句体1 else if(表达式表达式2)语句体语句体2 else if(表达式表达式3)语句体语句体3 else if(表达式表达式n)语句体语句体n else 语句体语句体n+1 if 语句语句形式形式3:if-else if 语句语句#include#include void main()double a,b,c,x1,x2,d,t;coutabc;d=b*b-4*a*c;if(d0)cout“没有实数根没有实数根;else if(d=0)x1=-b/(2*a
10、);cout“x1=”x1endl;else t=sqrt(d);x1=(-b+t)/(2*a);x2=(-b-t)/(2*a);cout“x1=”x1;cout“,x2=”x2endl;#include#include void main()double a,b,c,x1,x2,d,t;coutabc;d=b*b-4*a*c;if(d=0)x1=-b/(2*a);cout“x1=”x1 0)t=sqrt(d);x1=(-b+t)/(2*a);x2=(-b-t)/(2*a);cout“x1=”x1;cout“,x2=”x2endl;最后一项最后一项else可以没有。可以没有。例例3 3:输入一
11、个成绩,给出该输入一个成绩,给出该成绩成绩 的等级:的等级:成绩成绩90 输出输出优优;80成绩成绩90输出输出良良;70成绩成绩60输出输出中中;60成绩成绩70输出输出及格及格;成绩成绩60输出输出不及格不及格。#include void main()float score;coutscore;if(score100)cout=90)cout=80)cout=70)cout=60)cout及格及格n;else cout不及格不及格n;if 选择的是选择的是执行执行还是还是“绕开绕开”的问题,语句体可能的问题,语句体可能不会不会被执行;被执行;if-else 选择的执行语句体选择的执行语句体
12、1还是语句体还是语句体2的问题,两者之中必有一个会被执行;的问题,两者之中必有一个会被执行;if-else if 结结构则是在构则是在n个分支中作出选择。个分支中作出选择。if-else if 结构中提供了一个结构中提供了一个else分支分支,为所有条件都,为所有条件都不满足时的不满足时的“归宿归宿”。也可以没有。也可以没有else分支,当所分支,当所有条件都不满足时,什么都不执行,直接绕过。有条件都不满足时,什么都不执行,直接绕过。else if 不能单独使用,只能是不能单独使用,只能是if-else if 结构中的一个结构中的一个部分。当部分。当if-else if 不需要不需要else
13、if 时,即褪化为时,即褪化为if-else结构;当连结构;当连else也不需要的时候,就褪化为也不需要的时候,就褪化为if 语句。语句。1、问题、问题 if语句中的复合语句,一定用括起来,否语句中的复合语句,一定用括起来,否 则只与最近的结合。则只与最近的结合。#include void main()int x;cinx;if(x%2=0)x+;coutx;#include void main()int x;cinx;if(x%2=0)x+;coutx0)if(ab?a:b)if(m10&m20)if(a+,b+,a+b)#include void main()int x;cinx;if(x
14、)cout“嘻嘻嘻嘻嘻嘻”;else cout“哈哈哈哈哈哈”;/假如运行时输入假如运行时输入10会怎样?会怎样?/输入输入0呢?呢?#include void main()int x;cinx;if(x=0)cout“嘻嘻嘻嘻嘻嘻”;else cout“哈哈哈哈哈哈”;/假如运行时输入假如运行时输入10会怎样?会怎样?/输入输入0呢?呢?#include void main()int x;cinx;if(x=7)cout“嘻嘻嘻嘻嘻嘻”;else cout=0)/判断区间判断区间if(0 x0&xch;if(ch=97&ch=0 x61&ch=a&ch=65&ch=A&ch=Z)NoNo计算
15、表达式值计算表达式值常量常量1常量常量2常量常量ndefault语句语句1语句语句2语句语句n语句语句n+1选选break选选break选选break选选break=YesYesYesYesNoNoNoNoNoNoYesYesYesYesYesYesswitch语句:多个分支语句:多个分支casecasecasecasecasecasedefalutdefalut switch语句的基本形式语句的基本形式switch(表达式表达式)case 常量值常量值1:语句体语句体1break;case 常量值常量值2:语句体语句体2break;case 常量值常量值n:语句体语句体nbreak;defa
16、ult:语句体语句体n+1 break;其中的其中的表达式表达式可以是任何整型、字符型可以是任何整型、字符型表达式。每个每个“常量值常量值i”必须是必须是常量常量,并且每个常量值都不能相同。并且每个常量值都不能相同。case和和default的次序可以任意,不影响的次序可以任意,不影响分支选择分支选择,但,但影响影响结果结果分析程序运行结果分析程序运行结果。#include void main()int x,a,b,c,d;a=b=c=d=0;cinx;switch(x)case 1:a+;break;case 2:b+;break;case 3:c+;break;default:d=1;co
17、utabcdendl;输入输入1 1结果为:结果为:10001000输入输入2 2结果为:结果为:01000100输入输入5 5结果为:结果为:00010001执行程序:执行程序:#include void main()int x,a,b,c,d;a=b=c=d=0;cinx;switch(x)default:d=1;break;case 2:b+;break;case 3:c+;break;case 1:a+;break;coutabcdendl;注意:注意:语句体不是复合语句;语句体不是复合语句;顺序无关;顺序无关;breakbreak语句的作用语句的作用#include void mai
18、n()int x,a,b,c,d;a=b=c=d=0;cinx;switch(x)case 1:a+;case 2:b+;case 3:c+;break;default:d=1;break;coutabcdendl;输入输入1 1结果为:结果为:1 1110110输入输入2 2结果为:结果为:01100110输入输入5 5结果为:结果为:00010001执行程序:执行程序:#include void main()int x,a,b,c,d;a=b=c=d=0;cinx;switch(x)case 1:case 2:cout“小于小于3”;break;case 3:cout“等于等于3”;注意:
19、注意:可以没有可以没有default,所有,所有case都不符合时,直接都不符合时,直接跳过跳过switch结构。结构。注意:注意:表达式和选择项必为整表达式和选择项必为整数;数;选择项可为整数常数或选择项可为整数常数或常数表达式,但值不能常数表达式,但值不能重复;重复;选择项不能为变量表达选择项不能为变量表达式;式;#include void main()int a,b,c,d;double x;a=b=c=d=0;cinx;switch(x)case 1:a+;break;case 2.5:b+;break;case 3:c+;break;default:d=1;coutabcdendl;
20、#include void main()int a,b,c,d;int x;a=b=c=d=0;cinx;switch(x)case 1+2:a+;break;case 3*5:b+;break;case 3:c+;break;default:d=1;coutabcdendl;#include void main()int x,a,b,c,d;a=b=c=d=0;cinx;switch(x)case x0:c+;break;coutabcdendl;/例例2.3,考虑用,考虑用switch语句改写语句改写#include void main()float score;coutscore;if(
21、score100)cout=90)cout=80)cout=70)cout=60)cout及格及格n;else cout不及格不及格n;#include void main()float score;coutscore;switch(int(score/10)case 10:case 9:cout优优n;break;case 8:cout良良n;break;case 7:cout中中n;break;case 6:cout及格及格n;break;default:cout不及格不及格n;2.4循环结构循环结构 程序中有时需要反复地执行某些操作,程序中有时需要反复地执行某些操作,这种结构的程序称为循
22、环结构。这种结构的程序称为循环结构。在屏幕上输出在屏幕上输出“天津大学天津大学”cout“天津大学天津大学n”在屏幕上输出在屏幕上输出“天津大学天津大学”100遍遍for(int i=0;i100;i+)cout“天津大学天津大学n”循环语句循环语句在编写循环结构的程序时,要考虑的问题:在编写循环结构的程序时,要考虑的问题:有一个控制循环的有一个控制循环的循环变量循环变量或或称计数器称计数器,它有初,它有初始值。它在循环执行过程中不断地被修改。始值。它在循环执行过程中不断地被修改。确定一个确定一个条件条件。当该条件成立(为真)时循环被。当该条件成立(为真)时循环被执行;否则循环结束。执行;否则
23、循环结束。C+提供了提供了3种实现循环的语句:种实现循环的语句:while语句语句dowhile语句语句for语句语句 while语句语句 while(表达式表达式)循环体循环体 while语句属于语句属于当型循环当型循环,即当条件成立时执行循环。,即当条件成立时执行循环。while语句是语句是先判断,再执行先判断,再执行,如果第一次判断时表,如果第一次判断时表 达式的值就不成立,则循环体一次也不执行。达式的值就不成立,则循环体一次也不执行。注意循环体用复合语句。注意循环体用复合语句。表达式表达式?语句语句非非00执行流程:执行流程:while循环应用的典型场合循环应用的典型场合#includ
24、evoid main()double x=1000;int i=0;double r=0.0225;while(x=100000)x*=1+r;i+;couti“年年endl;假设在银行存款假设在银行存款1000元,年息为元,年息为2.25,多少年后,多少年后,变为变为10万元?万元?结果:结果:207年年例例6:求自然数求自然数100的累加和。的累加和。#include void main()int i(0),sum(0);while(i101)sum+=i;i+;/循环体循环体 coutsum=sumendl;#include void main()int i(0),sum(0);whil
25、e(i+100)sum+=i;/循环体循环体 coutsumendl;i+:099sum:1100#include void main()int i(1),sum(0);while(i+100)sum+=i;/循环体循环体 coutsumendl;i+:199sum:2100#include void main()int i(0),sum(0);while(+i100)sum+=i;/循环体循环体 coutsumendl;+i:199sum:199 do-while语句语句 do 循环体循环体while(表达式表达式););do while语句属于语句属于直到型循环直到型循环,直至表达式的值为
26、,直至表达式的值为0时时 结束循环。结束循环。do while语句语句先执行先执行循环体,然后循环体,然后再判断再判断条件。直到型条件。直到型 循环的循环体循环的循环体至少执行一次至少执行一次。(退出循环)(退出循环)表达式表达式?循环体循环体非非00执行流程:执行流程:改写银行存款程序改写银行存款程序(do-while)#includevoid main()double x=1000;int i=0;double r=0.0225;while(x=100000)x*=1+r;i+;couti“年年endl;#includevoid main()double x=1000;int i=0;do
27、uble r=0.0225;do x*=1+r;i+;while(x=100000);couti“年年endl;改写程序:求改写程序:求10个方程的根。个方程的根。#include#include void main()double a,b,c,x1,x2,d,t;coutabc;d=b*b-4*a*c;if(d0)cout“没有实数根没有实数根;else if(d=0)x1=-b/(2*a);cout“x1=”x1endl;else t=sqrt(d);x1=(-b+t)/(2*a);x2=(-b-t)/(2*a);cout“x1=”x1;cout“,x2=”x2endl;#include#
28、include void main()double a,b,c,x1,x2,d,t,count=0;while(count10)coutabc;d=b*b-4*a*c;if(d0)cout“没有实数根没有实数根;else if(d=0)x1=-b/(2*a);cout“x1=”x1endl;else t=sqrt(d);x1=(-b+t)/(2*a);x2=(-b-t)/(2*a);cout“x1=”x1;cout“,x2=”x2endl;count+;/end while例例7:输出输出 26个英文大写字母。个英文大写字母。#include void main()char ch;ch=A;d
29、o coutch;ch+;/字符的字符的ASCII代码值加代码值加1 while(ch=Z);#include void main()char ch;ch=A;while(ch=Z)coutch;ch+;/字符的字符的ASCII码值加码值加1 while和和do while的区别的区别例:输入字符,直到遇到例:输入字符,直到遇到#为止。为止。#include void main()char ch;cinch;while(ch!=#)coutch;coutendl;#include void main()char ch;docinch;coutch;/至少会输出一个至少会输出一个while(ch
30、!=#);coutendl;循环的数学用途循环的数学用途例:求解例:求解n!#include void main()int n,i=0;cin n;int nres=1;while(+i=n)nres*=i;cout n !=nres endl;例例15:求的近似值。求的近似值。!1!31!21!111ne710!1n#include void main()int n;double e,u;n=1;e=u=1.0;do u/=n;e+=u;n+;while(u 1.0e-7);coutn=n ;coute=eendl;#include void main()int n;double e,u;n
31、=1;e=u=1.0;while(u 1.0e-7)u/=n;e+=u;n+;coutn=n ;coute=eendl;n12 2.71828P50,6求求71513114直到最后一项绝对值小于直到最后一项绝对值小于10-6#includevoid main()double pai=0,t=1,u;int n=1;/u初始值无关初始值无关 do u=1.0/n;pai+=u*t;t=-t;n+=2;while(u1.0e-6);pai*=4;cout=paiendl;#include void main()double pai=0,t=1,u=1;int n=1;/注意注意u的初始值的初始值w
32、hile(u1.0e-6)u=1.0/n;pai+=u*t;t=-t;n+=2;pai*=4;cout=paiendl;for 语句语句 e1、e2、e3为表达式。为表达式。e1:赋值表达式:赋值表达式,用于为循环中的变量赋初始值;,用于为循环中的变量赋初始值;e2:关系或逻辑表达式:关系或逻辑表达式,作为继续循环的条件;,作为继续循环的条件;e3:增、减量表达式:增、减量表达式,用于修改循环条件中的变量;,用于修改循环条件中的变量;e1、e2、e3之间用之间用“;”号分隔;号分隔;for语句中的语句中的1、e2、e3均可省略,但均可省略,但“;”不能省略;不能省略;for语句中循环体可以是复
33、合语句。语句中循环体可以是复合语句。for(e1;e2;e3)循环体循环体for(i=0;i10;i+)for语句的执行流程语句的执行流程 计算计算e1判断判断e2?循环体循环体计算计算e3非非00for(e1;e2;e3)循环体循环体int i,sum=0;for(i=1;i10;i+)sum=sum+i;例题例题8:8:输出输出1到到10各数的平方值。各数的平方值。#include void main()int i;for(i=1;i=10;i+)couti i*iendl;1 12 43 94 165 256 367 498 649 8110 100 输出结果:输出结果:#include
34、 void main()int i=1;for(;i=10;i+)couti i*iendl;#include void main()int i;for(i=1;i=10;)couti i*iendl;/死循环死循环#include void main()int i;for(i=1;i=10;)couti i*iendl;i+;#include void main()int i;for(i=1;i+)if(i10)break;couti i*iendl;#include void main()int i=1;for(;)if(i10)break;couti i*iendl;i+;输出输出1到到
35、100,每行每行5个个#include void main()for(int i=1;i=100;i+)couti“”;/4个空格个空格#include void main()for(int i=1;i=100;i+)couti“”;/4个空格个空格if(i%5=0)coutendl;#include#include void main()for(int i=1;i=100;i+)coutsetw(4)i;if(i%5=0)coutendl;#include void main()for(int i=1;i=100;i+)cout i t;if(i%5=0)coutendl;P52例例14:输
36、出大写输出大写26个英文字母,每行个英文字母,每行打印打印6个字母。个字母。#include#include void main()char letter;cout 大大 写写 英英 文文 字字 母母 表表n;for(letter=A;letter=Z;letter+)coutsetw(5)letter;#include#include void main()char letter;cout 大大 写写 英英 文文 字字 母母 表表n;for(letter=A;letter=Z;letter+)coutsetw(5)letter;if(letter-A+1)%6=0)coutendl;#inc
37、lude#include void main()char letter;int count(0);cout 大大 写写 英英 文文 字字 母母 表表n;for(letter=A;letter=Z;letter+)coutsetw(5)letter;count+;if(count%6=0)coutendl;#include#include void main()char letter;int count(1);cout 大大 写写 英英 文文 字字 母母 表表n;for(letter=A;letter=Z;letter+,count+)coutsetw(5)letter;if(count%6=0
38、)coutendl;#include void main()int i,sum;sum=0;for(i=1;i=100;i+)sum+=i;coutsum=sumendl;求自然数求自然数100的累加和。的累加和。程序执行结果:程序执行结果:sum5050#include void main()int i,sum;for(i=1;i=100;i+)sum=0;sum+=i;coutsum=sumendl;/错误错误#include void main()int i,sum;for(sum=0,i=1;i=100;sum+=i,i+);/空循环体空循环体 coutsum=sumendl;讨论:如
39、何求讨论:如何求100!#include void main()int i;double sum=0;for(i=1;i=100;i+)sum+=1.0/i;coutsum=sumendl;求求10014131211#include void main()int i;int t=1;double sum=0,u;for(i=1;i=100;i+)u=1.0/i*t;sum+=u;t=-t;coutsum=sumendl;求求10014131211#include void main()int i;int t=1;double sum=0;for(i=1;i=100;i+)sum+=1.0/i*
40、t;t=-t;coutsum=sumendl;/求求pi#include void main()double pai=0,t=1,u=1;int i=1;for(i=1;u1.0e-6;i+=2)u=1.0/i;pai+=u*t;t=-t;pai*=4;out=paiendl;/求求pi#include void main()double pai=0,t=1,u=1;int i=1;while(u1.0e-6)u=1.0/i;pai+=u*t;t=-t;i+=2;pai*=4;out=paiendl;多重循环多重循环(循环的嵌套循环的嵌套)多重循环是在一个循环语句的循环体内多重循环是在一个循环
41、语句的循环体内又包含另一个循环语句。又包含另一个循环语句。上述三种循环语句既可以自身嵌套,也上述三种循环语句既可以自身嵌套,也可以互相嵌套。可以互相嵌套。嵌套时要注意必须将一个完整的循环结嵌套时要注意必须将一个完整的循环结构整体放在另一个循环体内。构整体放在另一个循环体内。二重循环二重循环.for()while().三重循环三重循环.for().for().for().讨论:讨论:多重循环执行过程!多重循环执行过程!for(i=1;i10;i+)for(i=1;i10;i+)for(j=1;j10;j+)for(i=1;i10;i+)for(j=1;j10;j+)s=i*j;错误理解:错误理解
42、:i=1,j=1,s=1i=2,j=2,s=4i=3,j=3,s=9i=9,j=9,s=81正确流程:正确流程:i=1,j=1,s=11=1j=2,s=12=2j=9,s=19=9i=2,j=1,s=21=2j=2,s=22=4j=9,s=29=18for(i=1;i10;i+)for(j=1;j10;j+)s=i*j;cout“s=”s;for(i=1;i10;i+)for(j=1;j10;j+)s=i*j;cout“s=”s;for(i=1;i10;i+)for(j=1;j10;j+)s=i*j;cout“s=”s;coutendl;for(i=1;i10;i+)for(j=1;j10;j
43、+)s=i*j;cout“s=”s;coutendl;例例:分析以下程序运行结果。分析以下程序运行结果。#include#include void main()int i,j;for(i=1;i10;i+)for(j=1;j=(10-i);j+)coutsetw(4)i*j;coutendl;1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 3 6 9 12 15 18 21 4 8 12 16 20 24 5 10 15 20 25 6 12 18 24 7 14 21 8 16 9 i循环共进行了循环共进行了9轮,轮,每一轮每一轮i循环内循环内 j循环了循环了10
44、-i次次 对每一轮对每一轮j循环,循环,i是一是一个常数。个常数。#include#include void main()int i,j;for(i=1;i10;i+)j=0;while(+j=10-i)coutsetw(4)i*j;coutendl;第第1:实现下三角形式输出:实现下三角形式输出第第2:实现:实现1*8=8形式的输出形式的输出#include#include void main()int i,j;for(i=1;i10;i+)for(j=1;j=i;j+)coutsetw(4)i*j;coutendl;couti*j=setw(2)i*j“;2.5 跳转语句跳转语句 跳转语句
45、是辅助性语句,不单独使用,跳转语句是辅助性语句,不单独使用,一般与选择语句或循环语句结合起来使用,一般与选择语句或循环语句结合起来使用,起到控制程序结构的作用。起到控制程序结构的作用。跳转语句包括跳转语句包括:break语句语句continue语句语句goto语句语句 break语句语句 break;用于用于switch语句语句用于循环语句用于循环语句 当在循环体执行过程中遇到当在循环体执行过程中遇到break语句时,终止语句时,终止循环的执行,循环的执行,中途退出循环,中途退出循环,转去执行循环体后面转去执行循环体后面的语句。的语句。例例:判断输入的某正整数是否为素数。判断输入的某正整数是否
46、为素数。#include void main()int m;do coutm;while(m=0);/重新输入重新输入 for(int i=2;im;i+)If(m%i=0)break;if(i=m)coutm是一个素数是一个素数n;else coutm不是一个素数不是一个素数n;输入一个正整数输入一个正整数:431431是一个素数是一个素数 第第1次执行程序:次执行程序:第第2次执行程序:次执行程序:输入一个正整数输入一个正整数:6969不是一个素数不是一个素数#include void main()int m;do coutm;while(m=0);/重新输入重新输入 for(int i=
47、2;im;i+)if(m%i=0)break;if(i=m)coutm是一个素数是一个素数n;else coutm不是一个素数不是一个素数n;注意:在多重循环时,注意:在多重循环时,break只是退出本层只是退出本层 循环。循环。例:例:分析以下分析以下switch语句执行后的输出结果。语句执行后的输出结果。#include void main()int a=1,b=2,c=0,d=0;switch(a)case 1:switch(b)case 1:c+;break;case 2:d+;break;case 2:c+;d+;break;coutc=cendl;coutd=dendl;程序执行结
48、果程序执行结果:#include void main()int a=1,b=2,c=0,d=0;switch(a)case 1:switch(b)case 1:c+;break;case 2:d+;break;break;case 2:c+;d+;break;coutc=cendl;coutd=dendl;0 1 continue语句语句 continue;中断本次中断本次循环体的执行,立即循环体的执行,立即执行下一执行下一次次循环。循环。只用于循环语句中。只用于循环语句中。例题例题11:将将100以内能被以内能被3整除的数输出,每行输出整除的数输出,每行输出10个数。个数。#include
49、void main()int k=0;for(int i=1;i100;i+)if(i%3!=0)continue;couti ;if(+k%10=0)coutendl;/控制每行输出控制每行输出10个数个数 coutendl;#include void main()for(int i=1;i=9;i+)coutiendl;123456789#include void main()for(int i=1;i=9;i+)if(i=5)break;coutiendl;123412346789#include void main()for(int i=1;i=9;i+)if(i=5)continue
50、;coutiendl;goto语句语句 goto 标号;标号;无条件地转去执行标号所指出的语句。无条件地转去执行标号所指出的语句。goto语句的使用被限制在一个函数内。语句的使用被限制在一个函数内。goto语句的使用会破坏程序的结构,语句的使用会破坏程序的结构,可读性差。不提倡使用,最好不用。可读性差。不提倡使用,最好不用。循环结构循环结构选择结构选择结构for循环循环当循环当循环程序的三种基本结构程序的三种基本结构if结构结构if-else语句语句if-else if语句语句if语句语句switch语句语句while循环循环先判断后循环先判断后循环do-while循环循环先循环后判断先循环后
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。