您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 第4章程序流程和异常处理(2)
第4章程序流程和异常处理(2)顺序结构选择结构:if语句、switch语句循环结构:for语句、while语句、do...while语句和foreach语句跳转语句:goto、break、continue、return、throwC#异常处理机制创建和引发异常现实生活中的循环银行的ATM需要不停地为不同的客户服务我们每天的生活和学习需要重复生活中充满了循环食堂宿舍教室ATM业务ATM业务ATM业务ATM业务ATM业务食堂食堂宿舍食堂宿舍食堂教室宿舍食堂在编写程序过程中,往往出现相同类型操作需要重复出现,如实现1+2+…+100,则需要做99次加法,这类问题使用循环语句解决。即循环语句用于实现语句块的重复执行。C#中提供了四种不同的循环机制:①for循环②while循环③do…while循环④foreach循环foreach循环常用在遍历数组时用到。for循环语句for循环常常用于已知循环次数的情况,使用该循环时,测试是否满足某个条件,如果满足条件,则进入下一次循环,否则,退出该循环。格式:for(表达式1;布尔表达式2;表达式3)单语句或{循环语句序列}三元运算表达式4.3.1for循环功能:truefalse语句布尔表达式21计算表达式1;2计算布尔表达式2,如果结果为true,则执行语句,再计算表达式3,然后重复本过程;如果表达式2为false,则退出循环表达式1表达式31计算表达式1;2计算布尔表达式2,如果结果为true,则执行语句,再计算表达式3,然后重复本过程;1计算表达式1;如果表达式2为false,则退出循环2计算布尔表达式2,如果结果为true,则执行语句,再计算表达式3,然后重复本过程;1计算表达式1;如果表达式2为false,则退出循环2计算布尔表达式2,如果结果为true,则执行语句,再计算表达式3,然后重复本过程;1计算表达式1;如果表达式2为false,则退出循环2计算布尔表达式2,如果结果为true,则执行语句,再计算表达式3,然后重复本过程;1计算表达式1;表达式1for(表达式1;布尔表达式2;表达式3)语句表达式1for循环语句的使用【例子】计算1+2+3+…100。使用for语句实现。分析1:定义sum,连续写sum=sum+n;分析2:该问题属于重复执行加法的问题,并且参与运算的两个操作数不断的按规律增加。该类问题可以通过循环进行解决。例:求1+2+3+...+100的值sum=sum+i;sum=0;sum=sum+1;sum=sum+2;sum=sum+3;...........sum=sum+100;Console.WriteLine(sum);写完这100条语句,就算出来了你想累死我啊!sum=sum+i;sum=0;sum=sum+1;sum=sum+2;sum=sum+3;...........sum=sum+100;Console.WriteLine(sum);sum=sum+i;sum=0;sum=sum+1;sum=sum+2;sum=sum+3;...........sum=sum+100;Console.WriteLine(sum);sum=sum+i;sum=0;sum=sum+1;sum=sum+2;sum=sum+3;...........sum=sum+100;Console.WriteLine(sum);写完这100条语句,就算出来了你想累死我啊!累加器写完这100条语句,就算出来了例:求1+2+3+...+100的值sum=0;i=1;sum=sum+i;i=i+1;sum=sum+i;i=i+1;sum=sum+i;i=i+1;...........sum=sum+i;i=i+1;Console.WriteLine(sum);i:1i:2i:3i:100i:101sum=0;i=1;sum=sum+i;i=i+1;sum=sum+i;i=i+1;sum=sum+i;i=i+1;...........sum=sum+i;i=i+1;Console.WriteLine(sum);i:1sum=0;i=1;sum=sum+i;i=i+1;sum=sum+i;i=i+1;sum=sum+i;i=i+1;...........sum=sum+i;i=i+1;Console.WriteLine(sum);sum=0;i=1;sum=sum+i;i=i+1;sum=sum+i;i=i+1;sum=sum+i;i=i+1;...........sum=sum+i;i=i+1;Console.WriteLine(sum);sum=0;sum=sum+1;sum=sum+2;sum=sum+3;...........sum=sum+100;Console.WriteLine(sum);sum=0;i=1;sum=sum+i;i=i+1;sum=sum+i;i=i+1;sum=sum+i;i=i+1;...........sum=sum+i;i=i+1;Console.WriteLine(sum);i:1i:2i:3i:100i:101sum=0;i=1;sum=sum+i;i=i+1;sum=sum+i;i=i+1;sum=sum+i;i=i+1;...........sum=sum+i;i=i+1;Console.WriteLine(sum);sum=0;i=1;sum=sum+i;i=i+1;sum=sum+i;i=i+1;sum=sum+i;i=i+1;...........sum=sum+i;i=i+1;Console.WriteLine(sum);sum=0;i=1;sum=sum+i;i=i+1;sum=sum+i;i=i+1;sum=sum+i;i=i+1;...........sum=sum+i;i=i+1;Console.WriteLine(sum);循环条件:i=100这两条语句需要循环执行计算1+2+…+100的for循环流程intsum=0,i;for(i=1;i=100;i++){sum=sum+i;}Console.WriteLine(sum);运行流程分析intsum=0,i;for(i=1;i=100;i++){sum=sum+i;}Console.WriteLine(sum);intsum=0,i;for(i=1;i=100;i++){sum=sum+i;}Console.WriteLine(sum);intsum=0,i;for(i=1;i=100;i++){sum=sum+i;}Console.WriteLine(sum);intsum=0,i;for(i=1;i=100;i++){sum=sum+i;}Console.WriteLine(sum);intsum=0,i;for(i=1;i=100;i++){sum=sum+i;}Console.WriteLine(sum);intsum=0,i;for(i=1;i=100;i++){sum=sum+i;}Console.WriteLine(sum);intsum=0,i;for(i=1;i=100;i++){sum=sum+i;}Console.WriteLine(sum);在窗体设计图上,双击按钮button1编写【计算】按钮的Click(单击)事件代码为:privatevoidbutton1_Click(objectsender,System.EventArgse){intsum,k;sum=0;for(k=1;k=100;k=k+1){sum=sum+k;}label1.Text=从1加到100值为+sum.ToString();}程序的运行结果如图所示的左图,单击“计算”按钮,将在标签上显示运行结果。程序运行结果【例子】计算n!,假设n=10。分析:该例实现阶乘的运算,可以使用改变乘数的值进行实现,使用循环可以方便的实现该类问题。程序的运行结果如图所示。计算n!n!=n*(n-1)*…*2*1privatevoidbutton1_Click(objectsender,System.EventArgse){intsum,k;sum=1;for(k=1;k=10;k++){sum=sum*k;}textBox1.Text=sum.ToString();}编写【计算】按钮的Click(单击)事件代码为:练习:使用for语句,编程输出1~10的每个整数的平方staticvoidMain(string[]args){ints;for(inti=1;i=10;i++){s=i*i;Console.Write({0}\t,s);}}for语句的常见用法(1)inti;for(i=0;i100;i++){Console.WriteLine(i);}01234......9899运行结果:赋初值01234......9899循环体被运行100次,循环变量依次为0~99改变循环变量i:循环变量循环条件for语句的常见用法(2)inti;for(i=1;i=100;i++){Console.WriteLine(i);}12345......99100运行结果:循环体也被运行100次,循环变量依次为1~100inti;for(i=1;i=100;i++){Console.WriteLine(i);}12345......99100inti;for(i=1;i=100;i++){Console.WriteLine(i);}12345......99100for语句的简化:for(i=1;i=100;i++)Console.WriteLine(i);可以为空可以为空可以为空,认为是trueinti=0;形成死循环分号不能省略哦!在for循环中定义变量for(inti=1;i=100;i++)sum=sum+i;在for中定义的变量只在该循环语句内有效,在循环语句外不能访问可以在这里定义变量for(inti=1;i=100;i++)sum=sum+i;在for中定义的变量只在该循环语句内有效,在循环语句外不能访问for(inti=1;i=100;i++)sum=sum+i;可以用于不知道循环次数的情况;用于在循环时判断是否满足某个条件。while循环语句的格式为:while(布尔表达式)单语句或者语句块布尔条件表达式是每次循环开始前进行判断的条件,当条件表达式的值为真时,执行循环;否则,退出循环。该语句结构的流程图如图所示。4.3.2while循环while语句while(布尔表达式)语句格式:功能:1如果布尔表达式为false,直接跳出循环;2如果为true,则执行语句,并继续第1步布尔表达式?语句falsetruewhile循环语句的使用【例子】设有一张厚为xmm,面积足够大的纸,将它不断地对折。试问对折多少次后,其厚度可达珠穆朗玛峰的高度(8844.43m)。设对折后纸的厚度为hmm,计数器为n。在没有对折时,纸厚为xmm,每对折一次,其厚度是上一次的2倍,在未到达8844.43m时,重复对折。在程序中,纸的厚度就是对折后纸的厚度,所以用一个变量h。建立应用程序用户界面与设置对象属性,如图所示。用户界面及程序运行结果privatevoidbutton1_Click(objectsender,System.EventArgse){intn=0;floath;h=float.Parse(textBox1.Text);while(h8844430)//未到达8844.43m时,重复对折{n=n+1;//计数器为n对折次数h=2*h;//每对折一次,其厚度是上一次的2倍}textBox2.Text=n.ToString();}求1+2+3+...+100的值改成while循环:sum=0;i=1;sum=sum+i;i=i+1;sum=sum+i;i=i+1;sum=sum+i;i=i+1;...........sum=sum+i;i=
本文标题:第4章程序流程和异常处理(2)
链接地址:https://www.777doc.com/doc-654945 .html