控制程序流程课件

上传人:无*** 文档编号:241406306 上传时间:2024-06-23 格式:PPT 页数:41 大小:2.17MB
返回 下载 相关 举报
控制程序流程课件_第1页
第1页 / 共41页
控制程序流程课件_第2页
第2页 / 共41页
控制程序流程课件_第3页
第3页 / 共41页
点击查看更多>>
资源描述
路漫漫其悠远路漫漫其悠远少壮不努力,老大徒悲伤少壮不努力,老大徒悲伤少壮不努力,老大徒悲伤少壮不努力,老大徒悲伤2024/6/23控制程序流程课件控制程序流程课件路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂本章内容安排本章内容安排&whilewhile循环循环&dowhiledowhile循环循环&forfor循环循环&高级循环高级循环&switchswitch2路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂循循环环的概念的概念&计算机擅长的工作之一是重复做相同的事情。计算机擅长的工作之一是重复做相同的事情。&许多编程任务可以通过重复相同的操作来完成,许多编程任务可以通过重复相同的操作来完成,通过指定次数或设定条件来控制执行过程。多次重通过指定次数或设定条件来控制执行过程。多次重复执行的结构称为复执行的结构称为循环循环,每一次循环称为,每一次循环称为迭代迭代。&whilewhile、dowhiledowhile、forfor3路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂while循循环环&在指定条件为在指定条件为truetrue的情况下,程序重复执行,直的情况下,程序重复执行,直到指定条件变为到指定条件变为falsefalse。&条件放在条件放在whilewhile之后的()内,循环执行的语句放之后的()内,循环执行的语句放在一对内。在一对内。表达式表达式表达式表达式F F F F循环体语句循环体语句循环体语句循环体语句T T T Twhile(表达式)循环体语句;4路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂显显示示099#include using namespace std;int main()int x=0;while(x100)cout x ;x+;return 0;p假如循假如循环语环语句中没有句中没有x+,则则while循循环环 的条件永的条件永远为远为真,真,导导致循致循环环一直一直执执行,行,称称为为无限循无限循环环或死循或死循环环。5路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂显显示示099,每行,每行5个个#include using namespace std;int main()int x=0;while(x100)cout x ;x+;if(x%5=0)coutendl;return 0;p递递增增x,每当,每当x是是5的倍数的倍数时时,输输出回出回车车。6路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂显显示前示前20个整除个整除14的正整数的正整数#include using namespace std;int main()int x=0,count=0;while(true)x+;if(x%14=0)coutx19)break;return 0;p循循环环中中让让while的条件的条件为为true,构,构 造造1个无限循个无限循环环。p在循在循环环体内,体内,调调用用break语语句,可句,可 立即停止循立即停止循环环的的执执行。行。p使用使用while(true)结结构构时时,要确,要确 保循保循环环能能够够停止。停止。7路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂显显示前示前20个整除个整除14的正整数的正整数#include using namespace std;int main()int x=0,count=0;while(count19)x+;if(x%15!=0)continue;coutx;count+;return 0;p在循在循环环中遇到中遇到continue语语句,将句,将 跳跳过过余下的余下的语语句,句,执执行下一次行下一次 迭代。迭代。pbreak结结束当前循束当前循环环,而,而continue 结结束本次迭代。束本次迭代。8路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂显显示前示前20个整除个整除14的正整数的正整数#include using namespace std;int main()int x=0,count=0;while(count19)x+=14;coutx;count+;return 0;p14倍数,从倍数,从14开始,依次开始,依次递递增增14。9路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂本章内容安排本章内容安排&whilewhile循环循环&dowhiledowhile循环循环&forfor循环循环&高级循环高级循环&switchswitch10路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂dowhile循循环环&whilewhile在执行循环前检查条件,如果此时条件为在执行循环前检查条件,如果此时条件为falsefalse,则一次循环也不执行。,则一次循环也不执行。&dowhiledowhile在循环之后检查条件,条件为在循环之后检查条件,条件为truetrue,继,继续循环,条件为续循环,条件为falsefalse结束循环。结束循环。do循环体语句;while(表达式);表达式表达式F循环体语句循环体语句T11路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂重复重复显显示示单词单词指定次数指定次数#include using namespace std;int main()int badger;coutbadger;do cout0);coutn;return 0;p不要不要遗遗漏漏语语句最后的;号。句最后的;号。p无无论论条件如何条件如何设设置,置,dowhile循循 至少至少执执行行1次。次。pbreak和和continue仍然有效。仍然有效。12路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂本章内容安排本章内容安排&whilewhile循环循环&dowhiledowhile循环循环&forfor循环循环&高级循环高级循环&switchswitch13路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂for循循环环&forfor循环将设置计数变量初值、检查条件、修改计循环将设置计数变量初值、检查条件、修改计数变量合并到数变量合并到1 1条语句中。条语句中。for(表达式1;表达式2;表达式3)循环体;表达式表达式表达式表达式2 2 2 2F F F F表达式表达式表达式表达式3 3 3 3表达式表达式表达式表达式1 1 1 1循环体语句循环体语句循环体语句循环体语句T T T T14路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂计计算算1100的和的和#include using namespace std;int main()int i,sum=0;for(i=1;i=100;i+)sum+=i;cout“Sum:“sum“n”;return 0;p表达式表达式1:完成:完成计计数数变变量初始化。量初始化。p表达式表达式2:检查检查条件,确定是否条件,确定是否 继续执继续执行循行循环环。p表达式表达式3:修改:修改计计数数变变量的量的值值。p3个表达式之个表达式之间间用分号分割。用分号分割。15路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂本章内容安排本章内容安排&whilewhile循环循环&dowhiledowhile循环循环&forfor循环循环&高级循环高级循环&switchswitch16路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂1、for的的变变化形式化形式1#include using namespace std;int main()int i,sum;for(i=1,sum=0;i=100;i+)sum=sum+i;cout“Sum:“sum“n”;return 0;p初始化多个初始化多个变变量量时时,用逗号,用逗号进进行行 分割。分割。p仍然是仍然是3大部分,用;分割大部分,用;分割17路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂for的的变变化形式化形式2#include using namespace std;int main()int i=1,sum=0;for(;i=100;i+)sum=sum+i;cout“Sum:“sum“n”;return 0;p3个表达式中的任意个表达式中的任意1个可以个可以为为空,空,但但对应对应的分号不能省略。的分号不能省略。18路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂for的的变变化形式化形式3#include using namespace std;int main()int i=1,sum=0;for(;i=100;)sum=sum+i;i+;cout“Sum:“sum“n”;return 0;p将表达式将表达式3转转移到循移到循环环体内部,已体内部,已 经经退化退化为为while循循环环。19路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂for的的变变化形式化形式4#include using namespace std;int main()int i=1,sum=0;for(;)sum=sum+i;if(i=100)break;i+;cout“Sum:“sum“n”;return 0;p将将3个表达式全部移出,退化个表达式全部移出,退化为为 while(true)结结构。构。20路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂for的的变变化形式化形式5#include using namespace std;int main()int i=1,sum=0;for(i=1;i=100;sum=sum+i,i+);cout“Sum:“sum“n”;return 0;p将循将循环环体内的体内的语语句句转转移到某个表达式移到某个表达式 中,不提倡中,不提倡这这种用法。种用法。p第第3部分部分为为逗号表达式,逗号表达式,顺顺序序执执行行21路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂2、循、循环环的典型的典型问题问题#include using namespace std;int main()int i,sum=0;for(i=1;i=100;i+);sum+=i;cout“Sum:“sum“n”;return 0;p此此时时的的for循循环环,执执行了行了100次空次空 语语句(;)。句(;)。p真正的循真正的循环环体体sum+=i没有没有执执行。行。22路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂循循环环的典型的典型错误错误#include using namespace std;int main()int i=1,sum=0;for(;i=100;)sum=sum+i;i+;cout“Sum:“sum“n”;return 0;p循循环执环执行行sum=sum+i,而不会,而不会执执行行 i+,导导致死循致死循环环。p养成将循养成将循环语环语句放在句放在 内作内作为为复复 语语句的良好句的良好习惯习惯,不管是否只有,不管是否只有 1条条语语句。句。23路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂循循环环的典型的典型错误错误#include using namespace std;int main()int i=1,sum=0;while(i=100);sum+=i;i+;cout“Sum:“sum“n”;return 0;pwhile循循环环后面不能加分号,否后面不能加分号,否则则 while一直一直执执行空行空语语句,句,导导致致i无无 法法递递增,死循增,死循环环。24路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂循循环环的典型的典型错误错误#include using namespace std;int main()int i=1,sum=0;do sum+=i;i+;while(i=100)cout“Sum:“sum“n”;return 0;pdowhile循循环环的的结结束必束必须须有;有;否否则则无法通无法通过编译过编译。25路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂3、循、循环环的嵌套的嵌套&在循环体内,可以包含另一个循环,从而构成循在循环体内,可以包含另一个循环,从而构成循环的嵌套。环的嵌套。&外部循环每次迭代时,内部循环都将完整循环外部循环每次迭代时,内部循环都将完整循环1 1次次26路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂输输出字符矩形出字符矩形#include using namespace std;int main()int rows,columns;char character;coutrows;coutcolumns;coutcharacter;coutn;27路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂输输出字符矩形出字符矩形#include using namespace std;int main()for(int i=0;irows;i+)for(int j=0;jcolumns;j+)coutcharacter;coutn;return 0;28路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂马马克思手稿中的数学克思手稿中的数学问题问题&共有共有3030个人,其中有男人、女人和小孩,他们在个人,其中有男人、女人和小孩,他们在一家饭馆吃饭共花费了一家饭馆吃饭共花费了5050先令,其中每个男人花先令,其中每个男人花费费3 3先令,每个女人花费先令,每个女人花费2 2先令,每个小孩各花先令,每个小孩各花1 1先先令,问令,问3030个人中男人、女人和小孩各几人?个人中男人、女人和小孩各几人?&设男人、女人和小孩的人数各为设男人、女人和小孩的人数各为x x、y y、z z,则通过,则通过题意可以列出下面的方程。题意可以列出下面的方程。x+y+z=30 x+y+z=303x+2y+z=503x+2y+z=5029路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂穷举穷举法法&通过两个方程解通过两个方程解3 3个未知数,这是一个不定方程,个未知数,这是一个不定方程,应该有多组解,用代数方法很难求解。应该有多组解,用代数方法很难求解。&利用计算机编写程序,通过利用计算机编写程序,通过“穷举法穷举法”可以可以列举出列举出所有可能的解所有可能的解。所谓。所谓“穷举法穷举法”,就是让计算机根据,就是让计算机根据所有可能的情况,逐一去验证,从而找出所有满足所有可能的情况,逐一去验证,从而找出所有满足要求的要求的“解解”。&由于总人数为由于总人数为3030人,所以人,所以x x、y y和和z z的取值范围一定的取值范围一定为为030030并且为整数并且为整数,在编程时,我们可以让,在编程时,我们可以让x x、y y和和z z都从都从0 0循环到循环到3030,然后验证看哪个组合能满足,然后验证看哪个组合能满足方程式。方程式。30路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂三重循三重循环环求解求解int main()int x,y,z;coutMan t Women t Childrenn“;for(x=0;x=30;x+)for(y=0;y=30;y+)for(z=0;z=30;z+)if(x+y+z=30&3*x+2*y+z=50)coutx“t”y“t”z“n”;return 0;p“t”表示制表符。表示制表符。p分析:循分析:循环环体体执执行行313131,循,循环时环时x、y 确定后,确定后,z就会确定,不需要再循就会确定,不需要再循环环。此外,。此外,每种人的循每种人的循环环范范围围不一定都是不一定都是30。31路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂缩缩小小穷举穷举范范围围int main()int x,y,z;coutMan t Women t Childrenn“;for(x=0;x=16;x+)for(y=0;y=25;y+)for(z=0;z=30;z+)if(x+y+z=30&3*x+2*y+z=50)coutx“t”y“t”z“n”;return 0;32路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂2重循重循环环int main()int x,y,z;coutMan t Women t Childrenn“;for(x=0;x=16;x+)for(y=0;y=25;y+)z=30 x y;if(3*x+2*y+z=50)coutx“t”y“t”z“n”;return 0;p某一次循某一次循环环迭代中,迭代中,x和和y确定后,确定后,z便可以便可以 计计算得出,减少了循算得出,减少了循环环的次数。的次数。33路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂1重循重循环环的的尝试尝试&采用消元法,消去变量采用消元法,消去变量z z,得到新的方程式,得到新的方程式2x+y=202x+y=20&对于这一方程式,我们可以采用一重循环来穷举对于这一方程式,我们可以采用一重循环来穷举x x的所有可能,即的所有可能,即x x从从0 0变到变到1616,但只要,但只要x x确定下来,确定下来,y y便可以通过方程式来确定,便可以通过方程式来确定,x x和和y y确定下来,则确定下来,则z z可以由可以由x+y+z=30 x+y+z=30确定。确定。34路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂1重循重循环环(小(小Bug)int main()int x,y,z;coutMan t Women t Childrenn“;for(x=0;x=16;x+)y=20-2*x;z=30-x-y;if(3*x+2*y+z=50)coutx“t”y“t”z“n”;return 0;35路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂1重循重循环环int main()int x,y,z;coutMan t Women t Childrenn“;for(x=0;x=16;x+)y=20-2*x;z=30-x-y;if(y0|z0)continue;if(3*x+2*y+z=50)coutx“t”y“t”z“n”;return 0;36路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂本章内容安排本章内容安排&whilewhile循环循环&dowhiledowhile循环循环&forfor循环循环&高级循环高级循环&switchswitch37路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂switch的的动动机机&对同一个变量,若存在多个分支判断情况,使用对同一个变量,若存在多个分支判断情况,使用嵌套的嵌套的if if语句,将导致代码非常烦琐混乱,不易理语句,将导致代码非常烦琐混乱,不易理解且难以维护。解且难以维护。&switchswitch语句,检查表达式,根据结果匹配执行多语句,检查表达式,根据结果匹配执行多个代码块中的个代码块中的1 1个。个。38路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂switch的基本的基本结结构构switch(switch(表达式表达式)case case 常量常量1:1:语句语句1;break;1;break;case case 常量常量2:2:语句语句2;break;2;break;case case 常量常量n:n:语句语句n;break;n;break;default:default:语句语句n+1;n+1;pswitch的表达式必的表达式必须须是一个整数是一个整数值值。pcase分支后必分支后必须为须为常量,不能是常量,不能是变变 量或者表达式,分支量或者表达式,分支间间不允不允许许重复。重复。pswitch语语句句执执行行时时,若匹配到某个,若匹配到某个 case,执执行后面的行后面的语语句;若没有匹句;若没有匹 配的配的case,执执行行default部分。部分。p通常每个通常每个case分支,都分支,都应该应该有有break 语语句,用于退出句,用于退出switch。若某个。若某个 case没有没有break,当前分支,当前分支执执行完行完 后,后,继续继续下一个下一个case分支。分支。p良好良好编编程程习惯习惯:保留:保留default,处处理理 特殊情况。特殊情况。39路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂等等级级分分转转百分制百分制#include int main()char grade;int score;coutgrade;return 0;40路漫漫其悠远路漫漫其悠远锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂锲而不舍,金石可镂等等级级分分转转百分制百分制switch(grade)case A:score=95;break;case B:score=85;break;case C:score=75;break;case D:score=65;break;default:cout“Its not even a grade!n”;cout“Your score is:“score“n”;pcase之后必之后必须为须为整数或字符常量。整数或字符常量。41
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!