第3章 C#入门学习教程_第1页
第3章 C#入门学习教程_第2页
第3章 C#入门学习教程_第3页
第3章 C#入门学习教程_第4页
第3章 C#入门学习教程_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、LOGOC程序设计程序设计 第第3章章 流程控制流程控制内容简介内容简介 C#采用面向对象编程思想和事件驱动机制,但在流程控制方面,采用了结构化程序设计中的三种基本结构(顺序、选择、循环)作为其代码块设计的基本结构。 顺序结构是最简单、最常用的结构,语句与语句之间,按从上到下的顺序执行。 选择结构和循环结构是根据条件判断来改变语句的执行顺序以实现某种功能。目录目录3.1 顺序结构程序设计顺序结构程序设计3.2 选择结构程序设计选择结构程序设计3.4 本章小结本章小结 3.3 循环结构程序设计循环结构程序设计3.1 赋值语句赋值语句 常用的赋值语句有:单赋值语句、复合赋值语句、连续赋值语句。不管

2、是哪种赋值语句,基本格式都是以下两种: 【格式1】变量名 赋值运算符 表达式 【功能】将表达式的值赋值给变量。 【格式2】对象名.属性名 赋值运算符 表达式 【功能】将表达式的值赋值给对象的属性。 【说明】表达式的结果与变量或对象的属性属于同一种类型;表达式由文本、常数、变量、属性、数组元素、其他表达式或函数调用的任意组合所构成;赋值语句先计算表达式的值,然后将计算出来的值赋给变量或属性。3.1 赋值语句赋值语句1. 1. 单赋值语句单赋值语句 赋值语句中,最常用的是单赋值语句,就是在一条语句中使用一个等号(=)运算符进行赋值的语句。例如:int i = 3; int j = i-1; tex

3、tBox1.Text = “Hello;label1.Text = 姓名;3.1 赋值语句赋值语句2. 2. 复合赋值语句复合赋值语句 复合赋值语句是在一条语句中使用+=、-=、*=、/=等复合运算符进行赋值的语句,这种语句首先需要完成特定的运算再进行赋值运算操作。例如:int x = 55; x -= 50;string str = hello; str += 嗨;label1.Text += :;3.1 赋值语句赋值语句3. 3. 连续赋值语句连续赋值语句 连续赋值语句是在一条语句中使用多个等号(=)运算符进行赋值的语句,这种语句可以一次为多个变量或属性赋予相同的值。例如:string s

4、1, s2, s3; s1 = s2 = s3 = 连续赋值;textBox1.Text = textBox2.Text = textBox3.Text = ;3.2 输入与输出输入与输出 输入与输出是应用程序进行数据处理过程中的基本功能。按照应用程序的类型,大致分为控制台、Windows、Web三种应用程序的输入与输出。本书只涉及前两种,下面分别介绍。 3.2.1 3.2.1 控制台应用程序的输入与输出控制台应用程序的输入与输出 3.2.2 Windows3.2.2 Windows应用程序的输入与输出应用程序的输入与输出3.2.1 控制台应用程序的输入与输出控制台应用程序的输入与输出 控制台

5、输入输出,也称为标准输入输出,使用的是标准输入输出设备,即键盘和显示器。控制台应用程序的输入与输出,主要通过Console类的静态方法实现。1. 1. 输入方法输入方法 控制台应用程序的数据输入,可以通过Console类的静态方法Read与ReadLine实现。2. 2. 输出方法输出方法 控制台应用程序的数据输出,可以通过Console类的静态方法Write与WriteLine实现,两个方法都没有返回值。 3.2.1 控制台应用程序的输入与输出控制台应用程序的输入与输出1. 1. 输入方法输入方法 Console类的静态方法Read与ReadLine (1) Read(1) Read方法方法

6、 【格式】 Console.Read() 【功能】 从标准输入流(一般指键盘)读取一个字符,并作为函数的返回值。 【说明】 Read方法只能接受一个字符,返回值是int类型,将返回该字符对应的ASCII编码。 【示例】 int i = Console.Read(); char c = (char)Console.Read();3.2.1 控制台应用程序的输入与输出控制台应用程序的输入与输出1. 1. 输入方法输入方法 Console类的静态方法Read与ReadLine (2) ReadLine(2) ReadLine方法方法 【格式】 Console.ReadLine() 【功能】 从标准输

7、入流读取一行字符,并作为函数的返回值。 【说明】 ReadLine方法接受一行字符(即一个字符串,回车代表输入的结束),返回值是string类型。 【示例】 string s = Console.ReadLine(); int j = int.Parse(Console.ReadLine();3.2.1 控制台应用程序的输入与输出控制台应用程序的输入与输出2. 2. 输出方法输出方法 Console类的静态方法Write与WriteLine (1) Write(1) Write方法方法 【格式1】 Console.Write(X) 【功能】 将参数X指定的数据写入标准输出流(一般指显示器)。

8、【说明】 参数X是任意类型的数据。 【示例】 Console.Write(请输入一个整数:); int j = int.Parse(Console.ReadLine(); Console.Write(输入的整数为:+j);3.2.1 控制台应用程序的输入与输出控制台应用程序的输入与输出2. 2. 输出方法输出方法 Console类的静态方法Write与WriteLine (1) Write(1) Write方法方法 【格式2】 Console.Write(格式字符串,表达式列表) 【功能】 按照格式字符串的约定,输出提示字符和表达式的值。 【说明】格式字符串由固定文本和索引占位符混和组成,格式

9、字符串是由双引号括起来的字符串,里面可以包含 括起来的数字,称为格式项,数字从0开始,依次对应表达式列表中的表达式。 【示例】 int i = 5; string s = five; Console.Write(i=0,s=1, i, s); /输出结果为:i=5,s=five3.2.1 控制台应用程序的输入与输出控制台应用程序的输入与输出 【格式项】 索引,对齐:格式字符串 “索引”是一个从 0 开始的数字,可标识对象列表中对应的项。 可选的“对齐”组件是一个带符号的整数,指示首选的设置了格式的字段宽度。如果“对齐”为正数,字段中设置了格式的数据为右对齐;如果“对齐”为负数,字段中的设置了格

10、式的数据为左对齐。 可选的“格式字符串”组件是适合正在设置格式的对象类型的格式字符串。 如果相应对象是数值,则指定数字格式字符串,如果相应对象是 DateTime 对象,则指定日期和时间格式字符串。 例:Console.WriteLine(0,10:f2, 1234);3.2.1 控制台应用程序的输入与输出控制台应用程序的输入与输出2. 2. 输出方法输出方法 Console类的静态方法Write与WriteLine (2) WriteLine(2) WriteLine方法方法 【格式1】 Console.WriteLine(X) 【功能】 将指定的X写入标准输出流,并以一个换行符结尾。 【格

11、式2】 Console.WriteLine(格式字符串,表达式列表) 【功能】 按照格式字符串的约定,输出提示字符和表达式的值,并以一个换行符结尾。 【说明】 WriteLine方法的功能与Write方法基本相同,唯一的区别是WriteLine方法调用后要换行。 【例例】 编写一个控制台应用程序,实现分别输入姓名和年龄后编写一个控制台应用程序,实现分别输入姓名和年龄后再一起输出再一起输出“的年龄是的年龄是岁岁”的功能。的功能。3.2.2 Windows程序的输入与输出程序的输入与输出1. 1. 输入法方法输入法方法 TextBox类的Text属性等2. 2. 输出法方法输出法方法 TextBo

12、x类的Text属性,Label类的Text属性,MessageBox类的Show方法等【例例】 编写一个编写一个WindowsWindows应用程序,实现分别输入姓名和年龄应用程序,实现分别输入姓名和年龄后再一起输出后再一起输出“的年龄是的年龄是岁岁”的功能。的功能。目录目录3.1 顺序结构程序设计顺序结构程序设计3.2 选择结构程序设计选择结构程序设计3.4 本章小结本章小结 3.3 循环结构程序设计循环结构程序设计3.2.1 if 语句语句 选择结构也称为分支结构,一般分为单分支、双分支、多分支三种。 if语句也称为条件语句,是程序设计中基本的选择语句,它根据条件表达式的值选择要执行的语句

13、块。 if语句一般用于简单选择,即选择项中有一个或两个分支,语句执行过程中根据不同的情况选择其中一个分支执行。3.2.1 if语句语句 单分支的if语句是最简单的,它根据条件表达式的值决定是否要执行其后的语句块,格式如下:【格式】if (条件表达式) 语句块 【说明】 条件表达式可以是关系表达式、逻辑表达式或布尔常量值(true和false)。 “语句块”可以是单语句,也可以是多语句。如果是单语句,大括号可以省略。3.2.1 if语句语句 【例例】 输入一个数,求该数的绝对值输入一个数,求该数的绝对值using System;class Programstatic void Main(stri

14、ng args) int x;Console.Write(“请输入一个整数:);x=int.Parse(Console.ReadLine();if (x =90) Console.WriteLine(等级为等级为A); else if (x = 80) Console.WriteLine(等级为等级为B); else if (x = 70) Console.WriteLine(等级为等级为C); else if (x = 60) Console.WriteLine(等级为等级为D); else Console.WriteLine(等级为等级为E); 3.2.2 switch语句语句 使用嵌套的

15、if语句虽然可以实现多分支的选择结构,但if语句每次判断只能有两个分支,当判断的条件较多时,程序的可读性将大大降低。switch语句(也称为开关语句)专门用于多分支的选择结构,其语法更简单,能处理复杂的条件判断。 switch语句有一个控制表达式,其分支语句根据控制表达式的值的不同,执行不同的语句块。switch语句的格式如下:3.2.2 switch语句语句【格式】switch (控制表达式) case 常量表达式1: 语句块1; break; case 常量表达式2: 语句块2; break; /其他分支 case 常量表达式n: 语句块n; break; default: 语句块n+1;

16、 break;falsefalsefalsefalsetruetrue语句语句2语句语句n+1语句语句n表达式表达式=常量表达式常量表达式n表达式表达式=常量表达式常量表达式2语句语句1 1表达式表达式=常量表达式常量表达式1true3.2.2 switch语句语句【说明】 “控制表达式”可以是sbyte、byte、short、ushort、int、uint、long、ulong、bool、char、string或枚举类型,使用较多的是int和string类型。 switch 语句可以包括任意数目的 case块,但是任何两个case语句都不能具有相同的值。“语句块”可以是单语句,也可以是多语句

17、。 break语句用于中断选择分支的语句运行,此处用于跳出switch语句。在switch语句中,也可使用goto语句实现语句转移,但应尽量避免使用这种方法。3.2.2 switch语句语句【说明】 在每一个 case 块(包括default块)的后面都必须有一个跳转语句(如break); default标签用来处理不匹配case语句的值,定义default标签可以增强处理相应的异常。【例例】编写一个程序,根据学生的分数输出成绩等级。编写一个程序,根据学生的分数输出成绩等级。 switch语句示例语句示例【例例】编写一个程序,根据学生的分数输出成绩等级。编写一个程序,根据学生的分数输出成绩等级

18、。 float n;Console.Write(请输入100以内的成绩:);n = Convert.ToSingle(Console.ReadLine();switch (int)(n / 10) case 10: case 9: Console.WriteLine(A); break; case 8: Console.WriteLine(B); break; case 7: Console.WriteLine(C); break; case 6: Console.WriteLine(D); break; default: Console.WriteLine(E); break;目录目录3.1

19、 顺序结构程序设计顺序结构程序设计3.2 选择结构程序设计选择结构程序设计3.4 本章小结本章小结 3.3 循环结构程序设计循环结构程序设计3.3.1 循环语句循环语句 C#提供了多种形式的循环语句,包括for语句、foreach语句、while语句和dowhile语句。 循环的作用:简单理解就是在满足某个条件之前,可以重复执行代码块。 无论何种类型的循环都有一个共同点:循环次数必须有限(即:非死循环) 3.3.1 循环语句循环语句 3.3.1.1 for语句 for语句用于循环次数可知的循环结构,其特点是:先判断是否满足给定的条件,如果满足条件则进入循环,否则退出该循环。for语句的格式如下

20、:【格式】for(表达式1;表达式2;表达式3) 循环体 3.3.1 for语句语句 【说明】 表达式1是赋值表达式,用来为“循环变量”赋初值,仅在初次进入循环时执行一次。 表达式2是逻辑表达式或关系表达式,用来检测循环条件是否成立。 表达式3是赋值表达式,用来更改“循环变量”的值以保证循环能正常终止,一般通过递增或递减来实现;递增或递减的值,称为步长,大多情况下步长为1。 循环体可以是单语句,也可以是多语句。如果是单语句,大括号可以省略。 在循环体内,可以对循环变量多次引用,但尽量不要对其赋值,否则影响结果。3.3.1 for语句语句 【说明】 可以在循环体中的任意位置放置break语句来强

21、制终止for循环。 可以在循环体中的任意位置放置continue语句来结束本次循环,在整个循环体没有执行完就重新开始新的循环。 break语句和continue语句通常与if语句结合使用,在if语句中判断条件是否满足,若满足则执行break或continue语句。3.3.1 for语句语句 【打印出打印出1 1100100之间所有能够被之间所有能够被7 7整除的数整除的数】for (int i = 1; i = 100; i+) if(i %7 = 0) Console.WriteLine( i );3.3.1 for语句语句 【计算计算1 1100100之间的所有整数的和之间的所有整数的和】

22、int total = 0;for (int i = 1; i = 100; i+)total += i;Console.WriteLine(1+2+.+100=0,total);3.3.1 for语句语句 【输入一个小于输入一个小于1010的正整数的正整数n n,输出,输出n n的阶乘的阶乘】int factorial = 1;Console.Write(“请输入一个小于10的正整数:)int n = int.Parse(Console.ReadLine();for (int i = 1; i = n; i+) factorial *= i;Console.WriteLine(0!=1, n

23、, factorial);3.3.2 while语句 while语句一般用于循环次数未知的循环结构,也可以用于循环次数可知的循环结构。while语句的特点是:先在循环的顶部判断是否满足给定的条件,如果满足条件则进入循环,否则退出该循环。while语句的格式如下: 【格式】while(条件表达式) 循环体 3.3.2 while语句 【说明】 本循环为先判断后执行,有可能一次也不执行。 条件表达式可以是关系表达式、逻辑表达式或布尔常量值(true和false)。 循环体可以是单语句,也可以是多语句。如果是单语句,大括号可以省略。 循环体内要使用循环变量来控制循环,注意在循环之前循环变量的初值应满

24、足循环条件,在循环过程中,每循环一次需要修改循环变量的值,当循环变量的值不符合循环条件时循环终止。 如果条件表达式是布尔常量值true,会导致死循环的发生;可以在循环体中的任意位置放置break语句来强制终止while循环。3.3.2 while语句 【说明】 可以在循环体中的任意位置放置continue语句来结束本次循环,在整个循环体没有执行完就重新开始新的循环。 break语句和continue语句通常与if语句结合使用,在if语句中判断条件是否满足,若满足则执行break或continue语句。3.3.3 while语句 【例例】:阅读下面的程序写出运行结果:阅读下面的程序写出运行结果u

25、sing System;class WhileTest static void Main() int n = 1; while (n 6) Console.WriteLine(n); n+; 3.3.3 dowhile语句 dowhile语句的特点是:先执行循环体,再在循环的底部判断是否满足给定的条件,如果满足条件则进入下一次循环,否则退出该循环。因为先执行后判断,所以至少执行一次。 dowhile语句的格式如下: 【格式】do 循环体 while(条件表达式); ; 提示:提示:最后的分号不能省略,否则会提示错误。3.3.3 dowhile语句 【例例】:阅读下面的程序写出运行结果。:阅读下

26、面的程序写出运行结果。using System;public class TestDoWhile public static void Main () int x = 0; do Console.WriteLine(x); x+; while (x 6); 3.3.4 foreach语句 foreach语句是专用于对数组、集合等数据结构中的每一个元素进行循环操作的语句,通过它可以列举数组、集合中的每个元素,并且通过执行循环可以对每一个元素进行需要的操作。foreach语句一般格式如下: 【格式】foreach(类型名 变量名 in 数组或集合名称) 循环体 【功能】对数组或集合中的每一个元素(

27、用“变量名”表示),执行循环体中的语句。3.3.4 foreach语句【说明】 “变量名”是一个循环变量,在循环中,该变量依次获取数组或集合中各元素的值,所以“类型名”必须与数组或集合的类型一致。 循环体可以是单语句,也可以是多语句。如果是单语句,大括号可以省略。 可以在循环体中的任意位置放置continue或break语句来结束本次循环或退出循环,break和continue语句通常结合if语句使用。【例例】 遍历数组。遍历数组。3.3.4 foreach语句【例例】 遍历数组遍历数组class ForEachTest static void Main(string args) int fi

28、barray = new int 0, 1, 2, 3, 5, 8, 13 ; foreach (int i in fibarray) System.Console.WriteLine(i); 3.3.5 循环的嵌套循环的嵌套 如果一个循环(称为“外循环”)语句的循环体内包含另一个或多个循环(称为“内循环”)语句,称为循环的嵌套。内循环中还可以包含循环,形成多层循环。 通常把循环体内不含有循环语句的循环叫做单层循环,而把循环体内含有循环语句的循环称为多重循环。 各种循环语句可以互相嵌套,嵌套的层数理论上无限制,但多重循环可能会导致程序的执行速度有所降低。 【例例】编写一个控制台应用程序,打印以

29、下图形编写一个控制台应用程序,打印以下图形* * * * * * * * * * * * * * * * *3.3.5 循环的嵌套循环的嵌套 using systemclass Program static void Main(string args) for(int i=1;i=4;i+) for(int j=1;j=(i*2)-1;j+) Console.Write(*); Console.WriteLine(); 【例例】编写一个程序,输出如图编写一个程序,输出如图4.124.12所示的乘法表。所示的乘法表。using System;namespace Proj4_8 class Pro

30、gram static void Main(string args) int i,j; for (i = 1; i = 9; i+) for (j = 1; j = i; j+) Console.Write(01=2 , i, j, i * j); Console.WriteLine(); 3.3.5 循环的嵌套循环的嵌套 3.3.5 循环的嵌套循环的嵌套 张丘建张丘建算经算经中提出中提出“百鸡问题百鸡问题”:鸡翁一值钱五,鸡:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、母、母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、母、雏各几何?雏各几何?using System;cla

31、ss program static void Main() for (int cocks=0;cocks = 100;cocks+) for (int hens = 0; hens 100;hens+ ) int chickens = 100 - cocks - hens; if (cocks * 5 + hens * 3 + chickens / 3.0 = 100.0) Console.WriteLine(公鸡:0,母鸡:1,小鸡:2, cocks, hens, chickens); Console.ReadKey(); 3.3.5 循环的嵌套循环的嵌套 谁在说谎谁在说谎: :张三说李四在

32、说谎,李四说王五在说谎,王五张三说李四在说谎,李四说王五在说谎,王五说张三和李四都在说谎。现在问:这三人中到底谁说的是说张三和李四都在说谎。现在问:这三人中到底谁说的是真话,谁说的是假话?真话,谁说的是假话? for (int a = 0; a = 1; a+) for (int b = 0; b = 1; b+) for (int c = 0; c = 1; c+) if (a + b = 1 & b+c=1 & (c=1 & a+b=0) | (c=0 & a+b!=0) Console.WriteLine(张三说的是0, a); Console.WriteLine(李四说的是0, b); Console.WriteLine(王五说的是0, c); 3.3.6 跳转语句跳转语句 前面介绍过,可以在循环体中放置break语句来强制终止循环,还可以在循环体中放置continue语句来结束本次循环。break语句和continue语句都是跳转语句,使用跳转语句,可以在循环的中途直接控制流程转移。 C#中提供了四种跳转语句:goto、break、continue和return语句。3.3.6 跳转语句跳转语句 1. goto1. goto语句语句 goto(转向)语句可以将程序控制直接转移给

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论