欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载
     

    C#结构化程序设计ppt课件.ppt

    • 资源ID:2002323       资源大小:2.79MB        全文页数:98页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C#结构化程序设计ppt课件.ppt

    第4章 结构化程序设计,本章主要介绍结构化程序设计的概念,三种基本控制结构以及C#中的常用语句。程序是由语句构成的,C#的常用语句包括:简单语句、条件语句、分支语句、循环语句、跳转语句等。只有很好地掌握程序设计语言的各种语句,才能构造正确的和结构良好、清晰的程序。,2,C#程序设计实用教程,4.1 结构化程序设计的概念,结构化程序设计的主要观点是采用自顶向下、逐步求精的程序设计方法;使用三种基本控制结构构造程序,任何程序都是由顺序、选择、循环三种基本控制结构进行构造 。,3,C#程序设计实用教程,4.1.1 结构化程序设计的概念及算法的概念,结构化程序设计是以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块。由于模块相互独立,因此在设计其中一个模块时,不会受到其它模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便。按照结构化程序设计的观点,任何算法功能都可以通过由程序模块组成的三种基本程序结构的组合:顺序结构、选择结构和循环结构来实现。,4,C#程序设计实用教程,4.1.1 结构化程序设计的概念及算法的概念,结构化程序设计的基本思想是采用“自顶向下,逐步求精”的程序设计方法和“单入口单出口”的控制结构。“自顶向下、逐步求精”的程序设计方法从问题本身开始,经过逐步细化,将解决问题的步骤分解为由基本程序结构模块组成的结构化程序框图;“单入口单出口”的思想认为一个复杂的程序,如果它仅是由顺序、选择和循环三种基本程序结构通过组合、嵌套构成,那么这个新构造的程序一定是一个单入口单出口的程序。,5,C#程序设计实用教程,4.1.1 结构化程序设计的概念及算法的概念,结构化程序设计的实质是控制编程中的复杂性。在此,我们来关注一下程序设计的主要步骤:(1)分析问题。 (2)确定算法。(3)画出程序流程图。(4)编写程序。 (5)调试程序。 (6)建立健全的文档资料。,6,C#程序设计实用教程,4.1.1 结构化程序设计的概念及算法的概念,其中,关键问题在于第2个步骤,即“算法设计”。 所谓“算法”,粗略地讲,是为解决一个特定问题而采取的确定的有限的步骤。这里所说的算法,是指计算机能执行的算法。只有算法是正确的,写程序就不会有太大的困难。一个程序员应该掌握如何设计一个问题的算法或者采用已有的可行算法。计算机算法可以采用流程图来表示。,7,C#程序设计实用教程,4.1.2 流程图,流程图(Flowchart),它是用一些几何框图、流向线和文字说明来表示各种类型的操作。计算机算法可以用流程图来表示,图4-1、图4-2、图4-3和图4-4是用流程图表示了结构化程序设计的3种基本结构。,8,C#程序设计实用教程,4.2 顺序结构,顺序结构的流程图如图4-1所示,先执行A语句,再执行B语句,两者是顺序执行的关系。A、B可以是一个简单语句,也可以是一个基本结构,即顺序结构、选择结构或者循环结构之一。常用的简单语句包括空语句、复合语句、标签语句、声明语句和表达式语句等。,9,C#程序设计实用教程,4.2.1 空语句,空语句是一种最简单的语句,它不实现任何功能,C#的空语句的形式如下:;即只有一个分号的语句。在不需要执行任何操作但又需要一条语句时,可以采用空语句来表示。,10,C#程序设计实用教程,4.2.2 复合语句,可以用把一些语句包括起来成为复合语句,或者称为块。例如,下面就是一条复合语句: int X, Y, Z; X = 9; Y = X + 10; Z = X * Y;,11,C#程序设计实用教程,4.2.3 标签语句,C#程序允许在一条语句前面使用标签前缀,其形式如下:标签名称:语句标签语句主要用于配合goto语句来完成程序的跳转功能,例如:if (X 0) goto Large;X = -X;Large: return X;,12,C#程序设计实用教程,4.2.4 顺序结构的实例,【例4-1】编写程序计算圆的面积。using System;namespace OrderStructure class Circle static void Main() const double PI = 3.14159; double R, S; Console.WriteLine(请输入圆的半径:); R = double.Parse(Console.ReadLine(); S = PI * R * R; Console.WriteLine(圆的面积为:0, S); ,13,C#程序设计实用教程,4.2.4 顺序结构的实例,上面这段程序就是一个典型的顺序结构。在Circle类的Main方法中,程序根据语句出现的顺序依次执行,先是在程序中输入一个半径值,然后根据计算公式计算出圆的面积,最后将圆的面积的值进行输出。,14,C#程序设计实用教程,4.3 选择结构,在实际的运算中,往往要进行复杂的逻辑判定,即给出一些条件,让程序判定是否满足条件,并按不同的情况让程序进行不同的处理。比如,输入一个考试成绩,判定它是优、良、中、及格或不及格等。或者输入两个字母,比较其ASCII码的大小,然后根据不同的情况进行相应的处理。这些问题是需要由程序按给定的条件进行比较和判定,并按判定后的不同情况进行处理,这时就需要用到选择结构。,15,C#程序设计实用教程,4.3 选择结构,选择结构也是一种常用的基本结构,是根据所定选择条件为真与否,而决定从各个不同的操作分支中执行某一分支的相应操作。常用的选择结构有条件语句和分支语句。,16,C#程序设计实用教程,4.3.1 条件语句,常用的条件语句有如下几种。1. if语句if语句是基于布尔表达式的值来判定是否执行后面的内嵌的语句块,其语法形式如下:if(表达式)语句块;,17,C#程序设计实用教程,4.3.1 条件语句,说明:如果表达式的值为true(即条件成立),则执行后面的if语句所控制的语句块,如果表达的值为false(即条件不成立),则不执行if语句控制的语句块。然后再执行程序中的后一条语句。if语句的程序流程图如图4-5所示。如果if语句只控制一条语句,则大括号“”可以省略。,18,C#程序设计实用教程,【例4-2】编写程序实现从键盘上输入一个数,输出它的绝对值。using System;class AbsDemo static void Main() int x, y; string str; Console.WriteLine(请输入x的值:);,str = Console.ReadLine(); x = Convert.ToInt32(str); y = x; if(x0) y=-x; Console.WriteLine(|0|=1, x, y); ,19,C#程序设计实用教程,4.3.1 条件语句,说明:在上例中,if条件表达式是判定x的取值是否小于0,如果x小于0,则执行if语句的控制语句“y=-x”,即将y赋值为x的绝对值;否则,不执行该控制语句,而保持y为x的输入数。,20,C#程序设计实用教程,4.3.1 条件语句,2. ifelse语句ifelse语句是一种更为常用的选择语句。ifelse语句的语法如下:if(表达式)语句块1;else语句块1;,21,C#程序设计实用教程,4.3.1 条件语句,说明:如果表达式的值为true(即条件成立),则执行后面的if语句所控制的语句块1,如果表达的值为false(即条件不成立),则执行if语句控制的语句块2。然后再执行程序中的后一条语句。if语句的程序流程图如图4-6所示。,22,C#程序设计实用教程,下面通过一个实例来说明ifelse语句的用法。【例4-3】根据输入的学生成绩Score的值,显示其是否及格。using System;class Score static void Main() Console.WriteLine(请您输入学生成绩:); int Score = int.Parse(Console.ReadLine();/转换为整数,if (Score = 60) Console.WriteLine(该成绩合格。); else Console.WriteLine(该成绩不合格。); ,23,C#程序设计实用教程,4.3.1 条件语句,说明:上例中if语句和else语句后的大括号“”可以省略,因为它们都只控制一条语句。但显而易见,加上大括号,程序的结构更加分明。,24,C#程序设计实用教程,4.3.1 条件语句,如果程序的逻辑判定关系比较复杂,通常会用到ifelse嵌套语句,if语句可以嵌套使用,即在判定之中又有判定。其一般形式如下:if(表达式1) if(表达式2) if(表达式3) . 语句1; else 语句2; else 语句3;else 语句4;,在应用这种ifelse结构时,要注意else和if的配对关系,此配对关系是:从第1个else开始,一个else总是和它上面离它最近的可配对的if配对。,25,C#程序设计实用教程,请看下例:if (i = 80) if (j 100) c = d; else /这个else与if (k 100)相匹配, a = c; else /这个else与if (k = 80)相匹配 a = d; 注意:在此建议在应用ifelse嵌套语句时,即使控制一条语句,也应该加上一对“”。,26,C#程序设计实用教程,4.3.1 条件语句,【例4-4】假设考查课的成绩按优秀、良好、中等、及格和不及格分为五等,但是实际的考试成绩是百分制的,分别对应的分数段为90100、8089、7079、6069、059。使用嵌套的ifelse语句将考试成绩转换为考查课成绩。程序代码如下所示:using System;class TestScore static void Main() int InputScore; string OutputScore; Console.WriteLine(请输入百分制分数:); InputScore = Convert.ToInt32(Console.ReadLine();,27,C#程序设计实用教程,4.3.1 条件语句,if (InputScore = 70) if (InputScore = 80) if (InputScore = 90) OutputScore = 优秀; /优秀 else OutputScore = 良好; /良好 else OutputScore = 中等; /中等 ,28,C#程序设计实用教程,4.3.1 条件语句, else if (InputScore = 60) OutputScore = 及格; /及格 else OutputScore = 不及格; /不及格 Console.WriteLine(百分制下0分经转换,为5分制下的1, InputScore, OutputScore); ,29,C#程序设计实用教程,4.3.1 条件语句,3. else if语句else if语句是if语句和ifelse语句的组合,其一般形式如下:if(表达式1)语句1;else if(表达式2)语句2;else if(表达式n-1)语句n-1;else语句n;,说明:当表达式1为true时,执行语句1,然后跳过整个结构执行下一条语句;当表达式1为false时,将跳过语句1去判定表达式2。若表达式2为true,则执行语句2,然后跳过整个结构去执行下一条语句,若表达式2为false则跳过语句2去判定表达式3,依次类推,当表达式1、表达式2、表达式n-1全为假时,将执行语句n,再转而执行下一条语句。,30,C#程序设计实用教程,4.3.1 条件语句,【例4-5】实现如下功能,检查输入字符是否为小写字符、大写字符或为数字,否则,输入字符不是数字字符。程序代码如下所示:using System;public class Character static void Main() Console.Write(Enter a character:); char c = (char)Console.Read();,31,C#程序设计实用教程,4.3.1 条件语句,if (char.IsUpper(c) Console.WriteLine(The character is uppercase.); else if(char.IsLower(c) Console.WriteLine(The character is lowercase.); else if(char.IsDigit(c) Console.WriteLine(The character is number.); else Console.WriteLine(The character is not alphanumeric.); ,32,C#程序设计实用教程,引申:若转换大小写的程序,怎么实现?,/ 三种方法实现的。using System;using System.Collections.Generic;using System.Text;namespace 大小写转换 class Program static void Main(string args) /int x = Console.Read(); /char y = (char)x; /if (y = a ,注意这个句子是错误的:char x = char.Parse(Console.Read();Console.Read()返回的是一个unicode编码值,而不是字符串。,char x = Console.ReadKey().KeyChar;,4.3.2 分支语句,当判定的条件有多个时,如果使用else if语句将会让程序变得难以阅读。而分支语句(switch语句)提供一个更为简洁的语法,以便处理复杂的条件判定。switch语句的一般格式如下:switch(表达式)case 常量表达式1;语句1;break;case 常量表达式1;语句2;break;,case 常量表达式n;语句n;break;default:语句n+1;break; ,37,C#程序设计实用教程,4.3.2 分支语句,说明:(1)首先计算switch后面的表达式的值。(2)如果表达式的值等于“case 常量表达式1”中常量表达式1的值,则执行语句1,然后通过break语句退出switch结构,执行位于整个switch结构后面的语句;如果表达式的值不等于“case 常量表达式1”中常量表达式1的值,则判定表达式的值是否等于常量表达式2的值,依次类推,直到最后一个语句。(3)如果switch后的表达式与任何一个case后的常量表达式的值都不相等,若有default语句,则执行default语句后面的语句n+1,执行完毕后退出switch结构,然后执行位于整个switch结构后面的语句;若无default语句则退出switch结构,执行位于整个switch结构后面的语句。,38,C#程序设计实用教程,4.3.2 分支语句,【例4-6】假设考查课的成绩按优秀、良好、中等、及格和不及格分为五等,但是实际的考试成绩是百分制的,分别对应的分数段为90100、8089、7079、6069、059。使用嵌套的switch语句将考试成绩转换为考查课成绩。程序代码如下所示:using System;class TestScore static void Main() int InputScore; string OutputScore; Console.WriteLine(请输入百分制分数:);,39,C#程序设计实用教程,4.3.2 分支语句,InputScore = Convert.ToInt32(Console.ReadLine(); int temp=InputScore/10; switch (temp) case 10: OutputScore = 优秀; break; case 9: OutputScore = 优秀; break; case 8: OutputScore = 良好; break;,40,C#程序设计实用教程,4.3.2 分支语句,case 7: OutputScore = 中等; break; case 6: OutputScore = 及格; break; default: OutputScore = 不及格; break; Console.WriteLine(百分制下0分经转换,为5分制下的1, InputScore, OutputScore); ,说明:对比例4-4和本例的所示程序,可以发现在多分支选择结构中使用switch语句具有结构清晰、可读性强等优点。,41,C#程序设计实用教程,4.3.2 分支语句,另外,针对C#中的switch语句说明以下几点:(1)case后面的常量表达式的类型必须与switch后面的表达式的类型相匹配,比如上例中都是整数类型。(2)如果在同一个switch语句中有两个或多个case后面常量表达式具有相同的值,将会出现编译错误。(3)在switch语句中,至多只能出现一个default语句。(4)在C#中,switch语句中的各个case语句及default语句的出现次序不是固定的,它们出现的次序不同不会对执行结果产生任何影响。(5)不允许遍历。在C#中,要求每个case语句后使用break语句或跳转语句goto,即不允许从一个case自动遍历到其他case,否则编译时将报错。(6)在C#中,多个case语句可以共用一组执行语句。,42,C#程序设计实用教程,4.3.2 分支语句,以上面的程序代码为例,如将switch语句中的代码改为:switch (temp) case 10: case 9: OutputScore = 优秀; break; case 8: OutputScore = 良好; break; case 7: OutputScore = 中等; break;,case 6: OutputScore = 及格; break; default: OutputScore = 不及格; break; 如此修改,使程序看起来更为简洁、明确。,43,C#程序设计实用教程,4.3.3 选择结构的实例,【例4-7】要求输出112月份的天数。在程序中,要对年份进行判定,判断该年份是否为闰年。程序代码如下所示:using System;class CountDaysNumber static void Main() Console.WriteLine(输入月份:); int i = int.Parse(Console.ReadLine();,44,C#程序设计实用教程,4.3.3 选择结构的实例,switch (i) case 1: case 3: case 5: case 7: case 8: case 10: case 12: Console.WriteLine(0月有31天, i); break;,45,C#程序设计实用教程,4.3.3 选择结构的实例,case 4: case 6: case 9: case 11: Console.WriteLine(0月有30天, i); break;,46,C#程序设计实用教程,4.3.3 选择结构的实例,case 2: Console.WriteLine(2月需要输入年份:); int year = int.Parse(Console.ReadLine(); /判定是否为闰年 if (year % 4 = 0 ,47,C#程序设计实用教程,/ 三种方法实现的。using System;using System.Collections.Generic;using System.Text;namespace 大小写转换 class Program static void Main(string args) Console.WriteLine(请输入年份:); int year = int.Parse(Console.ReadLine(); bool leap = false; /leap闰年 if (year % 4 = 0 ,4.4 循环结构,程序设计中的循环结构,是指在程序中从某处开始有规律地反复执行某一语句块的结构,并把重复执行的语句块称为循环体。,49,C#程序设计实用教程,4.4 循环结构,4.4.1 循环结构的概念循环结构按其循环体是否有嵌套从属的子循环结构,可分为单循环结构和多重循环结构。循环结构可以在很大程度上简化程序设计,并解决采用其他结构而不易解决的问题。比如,计算1+2+3+100的和,采用顺序结构的来解决则非常不便。若采用循环结构来编写这种程序,就相当简单,只需要几条语句即可。C#中,提供了4种类型的循环结构,分别适用于不同的情形。,50,C#程序设计实用教程,4.4.2 while语句与do-while语句,while语句和do-while语句用于循环次数不固定时,相当高效、简洁。1. while语句while语句的一般语法格式为:while(条件表达式)循环体;说明:while语句在执行时,首先判定条件表达式的值。如果while后面括号中的条件表达式的值为true,即执行循环体,然后再回到while语句的开始处,再判定while后面括号中的表达式的值是否为true,只要表达式一直为true,那么就重复执行循环体,一直到while后面括号中的条件表达式的值为false时,才退出循环,并执行下一条语句。,51,C#程序设计实用教程,4.4.2 while语句与do-while语句,while语句的程序流程图如图4-7所示。,52,C#程序设计实用教程,4.4.2 while语句与do-while语句,【例4-8】使用while语句,计算1+2+3+100的和。程序代码如下所示:using System;class Sum static void Main() int i=1, sum = 0; while (i = 100) sum += i; i+; Console.WriteLine(1+2+3+100的和为:0, sum); ,程序运行的结果为:1+2+3+100的和为:5050。,53,C#程序设计实用教程,4.4.2 while语句与do-while语句,说明:(1)如果while循环体只包括一条语句,则while语句中的大括号“”可以省略。(2)循环体中改变循环变量的语句应该是使循环趋向结束的语句,如果没有该语句或者该语句没有使循环结束的趋势,则可能导致循环无法中止。(3)在循环体中如果包括break语句,则程序执行到break语句时,就会结束循环。,54,C#程序设计实用教程,4.4.2 while语句与do-while语句,2. do-while语句do-while语句与while语句功能相似,但和while语句不同的是,do-while语句的判定条件在后面,这和while语句不同。do-while循环不论条件表达式的值是什么,do-while循环都至少要执行一次。do-while语句的一般语法格式如下:do循环体;while(条件表达式);说明:当循环执行到do语句后,先执行循环体语句;执行完循环体语句后,再对while语句括号中的条件表达式进行判定。若表达式的值为true,则转向do语句继续执行循环体语句;若表达式的值为false,则退出循环,执行程序的下一条语句。,55,C#程序设计实用教程,4.4.2 while语句与do-while语句,do-while语句的程序执行流程图如图4-8所示。,56,C#程序设计实用教程,4.4.2 while语句与do-while语句,【例4-9】使用do-while语句,计算100以内的奇数和。程序代码如下所示:using System;class OddSum static void Main() int i = 1, OddSum = 0; do OddSum += i; i += 2; ,while (i = 100); Console.WriteLine(1到100之内的奇数和为:0, OddSum); ,该程序运行的结果为:1到100之内的奇数和为:2500。,57,C#程序设计实用教程,4.4.2 while语句与do-while语句,说明:该程序首先将循环变量i的值初始化为1,然后执行循环体中的语句OddSum += i,接下来执行i += 2,改变循环变量。将循环变量加上2后,再判定while语句中的条件表达式是否为true,若为true,则转到do语句重复执行循环体,直到i = 101时,while条件表达式为假,则跳出循环。,58,C#程序设计实用教程,4.4.3 for语句和foreach语句,for语句和foreach语句都是固定循环次数的循环语句。1. for语句for语句是一种功能强大的循环语句,它比while语句和do-while语句更为灵活。它的一般语法格式为:for(表达式1;表达式2;表达式3)循环体;,59,C#程序设计实用教程,4.4.3 for语句和foreach语句,for语句的执行过程如下:(1)首先计算表达式1的值。(2)判定表达式2的值,若其值为true,则执行循环体中的语句,然后求表达式3的值;若表达式2的值为false,则转而执行步骤(4)。(3)返回步骤(2)。(4)结束循环,执行程序的下一条语句。,60,C#程序设计实用教程,4.4.3 for语句和foreach语句,for语句的程序执行流程图如图4-9所示。,61,C#程序设计实用教程,4.4.3 for语句和foreach语句,【例4-10】使用for语句,计算100以内的奇数和。程序代码如下:using System;class OddSum public static int Odd() int OddSum = 0; for (int i = 1; i = 100; i += 2) OddSum += i; Console.WriteLine(1到100之内 的奇数和为:0, OddSum); return 0; ,static void Main() Odd(); 说明:该程序在for循环语句中,首先将循环变量i赋初值为1,然后判定i=100是否为true,这里i=100的值为true,执行循环体中的语句,然后执行i+=2,再来判定i=100是否为true,直到i=101,for语句中的条件表达式为假,则跳出循环。,62,C#程序设计实用教程,4.4.3 for语句和foreach语句,下面结合上例,对for语句做如下几点说明:(1)如果对循环变量在for语句前面已经赋了初值,则在for语句中可省略表达式1,但要保留其后的分号。上例中的for语句可以用下面的代码来表示:int i = 1;for (; i = 100; i += 2),63,C#程序设计实用教程,4.4.3 for语句和foreach语句,(2)for语句可以省略表达式2,即不判定表达条件是否成立,循环将一直进行下去,但应保留表达式2后面的分号。此时,需要在循环体中添加跳出循环体的跳转语句。 上例中的for语句可以用下面的代码来表示:for (int i = 1; i += 2) OddSum += i;if(i =100)break;,64,C#程序设计实用教程,4.4.3 for语句和foreach语句,(3)for语句可以省略表达式3。此时,需要在循环体中添加改变循环变量值的语句,以结束循环。 上例中的for语句可以用下面的代码来表示:for (int i = 1; i = 100;) OddSum += i;i += 2;,65,C#程序设计实用教程,4.4.3 for语句和foreach语句,(4)for语句中的3个表达式可同时省略。此时要对循环变量赋初值,在循环体中添加跳出循环的跳转语句和改变变量值的语句,否则,循环将一直进行下去。在同时省略3个表达式后,仍然要保留表达式1和表达式2后面的分号。 上例中的for语句可以用下面的代码来表示:int i = 1;for (; ; ) OddSum += i; i += 2; if (i = 100) break;,66,C#程序设计实用教程,4.4.3 for语句和foreach语句,(5)循环语句都可以嵌套。同样,对于for语句也是可以嵌套。,67,C#程序设计实用教程,4.4.3 for语句和foreach语句,【例4-11】利用for循环嵌套语句实现以下功能。假设某班有10名学生,每名学生共修3门课程,求每名学生的总分和平均成绩。程序代码如下:using System;class TotalScoreAndAverageScore static void Main() double sum = 0, score; for (int i = 1; i = 10; i+) Console.WriteLine(请输入第0名学生的成绩:, i);,68,C#程序设计实用教程,4.4.3 for语句和foreach语句,for (int j = 1; j 4; j+) Console.Write(第0门课程:, j); score = double.Parse(Console.ReadLine(); sum += score; Console.WriteLine(第0名学生:部分1,平均分2:F1, i, sum, sum / 3); sum = 0; Console.ReadLine(); ,69,C#程序设计实用教程,打印乘法口诀表,using System;using System.Collections.Generic;using System.Text;namespace 乘法口诀 class Program static void Main(string args) for (int i = 1; i = 9; i+) for (int j = 1; j = i; j+) if (i=j) if (i * j.ToString().Length = 1) Console.Write(0 x1=2,1:d , i, j, i * j); else if (i * j.ToString().Length = 2) Console.Write(0 x1=2,2:d , i, j, i * j); else Console.Write(0 x1=2,2:d , j, i, i * j); Console.WriteLine(); ,4.4.3 for语句和foreach语句,问题2. 输入n值,输出由*组成的高为n的等腰三角形。* * (n=7),using System;using System.Collections.Generic;using System.Text;namespace 三角形to 菱形 class Program static void Main(string args) Console.WriteLine(输入n:); int n=int.Parse(Console.ReadLine(); for (int i = 1; i= n; i+) for (int j = 1;j = n - i; j+) Console.Write( ); for (int k = 1; k = 2 * i - 1; k+) Console.Write(*); Console.WriteLine(); for (int i = 1; i = n - 1; i+) for (int j = 1; j = i; j+) Console.Write( ); for (int k = 1; k = 2 * n - 1 - 2 * i; k+) Console.Write(*); Console.WriteLine(); Console.ReadLine(); ,问题3:求自然对数e。e=1+1/1!+1/2!+1/3!+.,using System;using System.Collections.Generic;using System.Text;namespace 求e class Program static void Main(string args) double e = 1.0; Console.WriteLine(输入项数:); int n = int.Parse(Console.ReadLine(); for (int i = 1; i = n; i+) e += 1.0 / factorial(i); Console.WriteLine(e=0,e); /static int factorial(int n) / / int fact = 1; / while (n != 0) / / fact *= n; / n-; / / return fact; / static int factorial(int n) if (n = 1) return 1; else return factorial(n-1)*n; ,4.4.3 for语句和foreach语句,2. foreach语句foreach语句对于处理数组及集合等数据类型特别简便。foreach语句用于列举集合中的每一个元素,并且通过执行循环体对每一个元素进行操作。foreach语句只能对集合中的元素进行循环操作。foreach语句的一般语法格式如下:foreach(数据类型 标识符 in 表达式)循环体;说明:foreach语句中的循环变量是由数据类型和标识符声明的,循环变量在整个foreach语句范围内有效。在foreach语句执行过程中,循环变量就代表当前循环所执行的集合中的元素。每执行一次循环体,循环变量就依次将集合中的一个元素带入其中,直到把集合中的元素处理完毕,跳出foreach循环,转而执行程序的下一条语句。,76,C#程序设计实用教程,4.4.3 for语句和foreach语句,【例4-12】利用foreach语句计算数组中的奇数和偶数的个数。程序代码如下:using System;class OddNumAndEvenNum static void Main() int OddNum = 0, EvenNum = 0; int arrNum = new int 12, 15, 23, 56, 90;/定义并初始化一个一维数组,77,C#程序设计实用教程,4.4.3 for语句和foreach语句,foreach (int k in arrNum) /提取数组中的整数 if (k % 2 = 0) /判定是否为偶数 EvenNum+; else OddNum+; Console.WriteLine(偶数个数为:0,奇数个数为:1, EvenNum, OddNum); 说明:上例说明了使用foreach语句操作数组元素的用法。该程序在执行过程中,使用foreach语句遍历数组中的元素。foreach语句为集合的访问提供了更简洁的方式,下面的程序代码说明用一个foreach语句来循环显示集合列表中的元素。,78,C#程序设计实用教程,using System;using System.Collections;namespace foreachDemo class Program static void Main(string args) ArrayList list = new ArrayList(); for (int i = 0; i 10; i+) list.Add(i); WriteList(list); static void WriteList(ArrayList list) foreach (object o in list) Console.Write(o); ,4.4.4 跳转语句,在C#中可以用跳转语句来

    注意事项

    本文(C#结构化程序设计ppt课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开