程序设计全套3程序流程控制

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

内容简介虽然C#是完全的面向对象语言,但在局部的语句块内,仍然要使用结构化程序设计的方法,用控制结构来控制程序的执行流程。结构化程序设计有三种基本控制结构,分别是:顺序结构、选择结构和循环结构。本章将对这三种基本结构的概念及相应的控制语句进行详细介绍。目录3.1顺序结构3.2选择结构3.3循环结构3.1顺序结构顺序结构的执行特征为:按照语句出现的先后顺序,依次执行。处理实际问题时,往往需要用户输入数据,然后进行相应的处理,最后由程序输出结果。控制台应用程序的输入与输出Windows应用程序的输入与输出3.1.1赋值语句赋值语句是程序设计中最基本的语句,由于C#的赋值表达式有多种形式,因此赋值语句也表现出多样性。常用的赋值语句有单赋值语句、复合赋值语句、连续赋值语句。不管是哪种赋值语句,基本格式都是以下两种:【格式1】变量名=表达式【功能】将表达式的值赋值给变量。【格式2】对象名.属性名=表达式【功能】将表达式的值赋值给对象的属性。3.1.1赋值语句1.单赋值语句2.复合赋值语句3.连续赋值语句inti=3;intj=i-1;label1.Text=姓名;intx=55;x-=50;label1.Text+=:;strings1,s2,s3;s1=s2=s3=连续赋值;textBox1.Text=textBox2.Text=;3.1.2输入与输出输入与输出是应用程序进行数据处理过程中的基本功能。按照应用程序的类型,大致分为控制台、Windows、Web三种应用程序的输入与输出。1控制台应用程序的输入与输出2Windows应用程序的输入与输出1控制台应用程序的输入与输出控制台输入输出,也称为标准输入输出,使用的是标准输入输出设备,即键盘和显示器。控制台应用程序的输入与输出,主要通过Console类的静态方法实现。1.输入方法控制台应用程序的数据输入,可以通过Console类的静态方法Read与ReadLine实现。2.输出方法控制台应用程序的数据输出,可以通过Console类的静态方法Write与WriteLine实现,两个方法都没有返回值。1控制台应用程序的输入与输出1.输入方法——Console类的静态方法Read与ReadLine(1)Read方法【格式】Console.Read()【说明】Read方法只能接受一个字符,返回值是int类型;如果输入的字符不是数字,将返回该字符对应的ASCII编码。【示例】inti=Console.Read();charc=(char)Console.Read();1控制台应用程序的输入与输出1.输入方法——Console类的静态方法Read与ReadLine(2)ReadLine方法【格式】Console.ReadLine()【说明】ReadLine方法接受一行字符(即一个字符串,回车代表输入的结束),返回值是string类型。【示例】strings=Console.ReadLine();2.输出方法——Console类的静态方法Write与WriteLine(1)Write方法【格式1】Console.Write(X)【功能】将参数X指定的数据写入标准输出流(一般指显示器)。【说明】参数X是任意类型的数据。【示例】Console.Write(请输入一个整数:);intj=int.Parse(Console.ReadLine());Console.Write(输入的整数为:+j);1控制台应用程序的输入与输出2.输出方法——Console类的静态方法Write与WriteLine(1)Write方法【格式2】Console.Write(格式字符串,表达式列表)【功能】按照格式字符串的约定,输出提示字符和表达式的值。【说明】格式字符串是由双引号括起来的字符串,里面可以包含{}括起来的数字,数字从0开始,依次对应表达式列表中的表达式。【示例】inti=5;strings=five;Console.Write(i={0},s={1},i,s);//输出结果为:i=5,s=five1控制台应用程序的输入与输出2.输出方法——Console类的静态方法Write与WriteLine(2)WriteLine方法【格式1】Console.WriteLine(X)【功能】将指定的X写入标准输出流,并以一个换行符结尾。【格式2】Console.WriteLine(格式字符串,表达式列表)【功能】按照格式字符串的约定,输出提示字符和表达式的值,并以一个换行符结尾。【说明】WriteLine方法的功能与Write方法基本相同,唯一的区别是WriteLine方法调用后要换行。【例】编写一个控制台应用程序,实现分别输入姓名和年龄后再一起输出“××的年龄是××岁”的功能。1控制台应用程序的输入与输出Windows应用程序的输入与输出,可以通过多种控件实现,如之前介绍过的TextBox、Label、LinkLabel以及下面要介绍的MessageBox(消息框)等。其中,使用频率最高的是TextBox和Label。从操作程序的用户的角度看,TextBox和Label控件的主要区别在于:Label控件是一个只能显示数据的控件,而TextBox控件既可以让用户在其中输入数据,也可以显示输出数据。【例】编写一个Windows应用程序,实现分别输入姓名和年龄后再一起输出“××的年龄是××岁”的功能。3.2.2Windows应用程序的输入与输出消息框消息框是一个预定义对话框,用于向用户显示与应用程序相关的信息。只有在用户响应该消息框后,程序才能继续运行下去。1.显示消息框要显示消息框,必须调用MessageBox类的静态方法Show。【格式】MessageBox.Show(参数列表);消息框可以显示标题、消息、按钮和图标四部分内容,也可以只显示其中的一项或几项。1.显示消息框下面给出几种常用的Show方法。消息框2.消息框的按钮消息框中,除了默认的“确定”按钮,还可以放置其他按钮,这些按钮可以收集用户对消息框中问题的响应。一个消息框中最多可显示3个按钮,可以根据程序要求从MessageBoxButtons枚举的成员中选择。消息框3.消息框的图标默认情况下,消息框不显示图标,MessageBoxIcon枚举用于指定消息框中显示什么图标。消息框4.消息框的返回值单击消息框中的某一按钮时,Show方法将返回一个DialogResult枚举值来指示对话框的返回值。【例】实现通过消息框输出“××的年龄是××岁”的功能。消息框3.2选择结构选择结构也称为分支结构,其特点是:根据给定的条件是否成立,决定从各个可能的分支中执行某一分支的相应操作。选择结构一般分为单分支、双分支、多分支三种。if语句,用于判断特定的条件能否满足,一般用于单分支和双分支选择,也可以用于多分支选择。switch语句常用于多分支选择。3.2.1if语句单分支的if语句是最简单的,它根据条件表达式的值决定是否要执行其后的语句块,格式如下:【格式】if(条件表达式){语句块};【说明】①条件表达式可以是关系表达式、逻辑表达式或布尔常量值(true和false)。②“语句块”可以是单语句,也可以是多语句。如果是单语句,大括号可以省略;如果是多语句,分号可以省略。【例】输入一个整数,求绝对值。程序分析:如果是负数,取反;否则,绝对值是这个数本身。条件语句块假真双分支的if语句是最常用的,它根据条件表达式的值进行判断,选择其中一个分支执行,格式如下:【格式】if(条件表达式){语句块1}else{语句块2};【例】根据输入的学生成绩Score的值,显示其是否及格。3.2.1if语句if语句也可以用于多分支的选择结构,用来对三种或三种以上的情况进行判断。if…elseif…else语句实际上就是if语句的嵌套,一般格式如下:【格式】if(条件表达式1){语句块1};elseif(条件表达式2){语句块2};……//其他分支elseif(条件表达式n){语句块n};else{语句块n+1};3.2.1if语句3.2.2switch语句使用嵌套的if语句虽然可以实现多分支的选择结构,但if语句每次判断只能有两个分支,当判断的条件较多时,程序的可读性将大大降低。switch语句(也称为开关语句)专门用于多分支的选择结构,其语法更简单,能处理复杂的条件判断。switch语句有一个控制表达式,其分支语句根据控制表达式的值的不同,执行不同的语句块。switch语句的格式如下:【格式】switch(控制表达式){case常量表达式1:语句块1;break;case常量表达式2:语句块2;break;……//其他分支case常量表达式n:语句块n;break;default:语句块n+1;break;}3.2.2switch语句【说明】①“控制表达式”可以是sbyte、byte、short、ushort、int、uint、long、ulong、bool、char、string或枚举类型,使用较多的是int和string类型。②switch语句可以包括任意数目的case块,但是任何两个case语句都不能具有相同的值。③“语句块”可以是单语句,也可以是多语句。④break语句用于中断选择分支的语句运行,此处用于跳出switch语句。在switch语句中,也可使用goto语句实现语句转移,但应尽量避免使用这种方法。3.2.2switch语句3.2.2switch语句【说明】⑤C#不支持从一个case标签显式贯穿到另一个case标签,因此在每一个case块(包括default块)的后面都必须有一个跳转语句(如break);但有一个例外,这个例外是当case块中没有代码时,空case标签可以贯穿到另一个case标签,这种情况下多个case语句可以使用同一个语句块进行处理。⑥default标签用来处理不匹配case语句的值,定义default标签可以增强处理相应的异常。【例】改写输入的学生成绩Score的值,显示其是否及格。3.3循环语句C#提供了多种形式的循环语句,包括for语句、foreach语句、while语句和do…while语句。3.3.1for语句循环次数可知【格式】for(表达式1;表达式2;表达式3){循环体};12345循环体以外的语句63.3.1for语句1+2+3+……+100=?inti,sum=0;for(i=1;i=100;i++)sum+=i;inti=1,sum=0;{sum+=i;break;}if()i==100i=i+1;3.3.1for语句【例】编写一个Windows应用程序,计算a+aa+aaa+aaaa+......+aa...a(n个)的值,其中a和n为1~9之间的整数。inta,n,num,sum;num=sum=0;a=int.Parse(txtA.Text);n=int.Parse(txtN.Text);for(inti=1;i=n;i++){num=num*10+a;sum+=num;}txtSum.Text=sum.ToString();3.3.2while语句while语句一般用于循环次数未知的循环结构,也可以用于循环次数可知的循环结构。【格式】while(条件表达式){循环体};注意:1.循环体可能执行0次;2.while(true)永真循环,要使用break语句。3.3.2while语句【例】编写一个Windows应用程序,将所输入整数的各个位上的数字按相反顺序输出。8639779368aa!=0b=a%10;//7str=str+b.ToString();a=a/10;//8639b=a%10;//9str=str+b.ToString();a=a/10;//8633.3.3do…while语句do…while语句与while语句非常相似,而do…while语句的测试条件在每一次循环结束时进

1 / 42
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功