收藏 分享(赏)

C#_教程第二讲.ppt

上传人:11xg27ws 文档编号:8114516 上传时间:2019-06-09 格式:PPT 页数:52 大小:592KB
下载 相关 举报
C#_教程第二讲.ppt_第1页
第1页 / 共52页
C#_教程第二讲.ppt_第2页
第2页 / 共52页
C#_教程第二讲.ppt_第3页
第3页 / 共52页
C#_教程第二讲.ppt_第4页
第4页 / 共52页
C#_教程第二讲.ppt_第5页
第5页 / 共52页
点击查看更多>>
资源描述

1、1,第二章 C#程序设计基础,C#的值类型 常量与变量 运算符与表达式 C#的引用类型 程序的分支语句 程序的循环语句,2,2.1 C#的值类型,一、简单类型 二、枚举型 enum 三、结构型struct,3,一、简单类型,1. 整数型 2. 浮点型 3. 小数型 4. 布尔型,4,1. 整数型,5,2. 浮点型,float型(single): 取值范围在1.5e45 到 3.4e38 精度为7位 double型: 取值范围在5.0e324 到 1.7e308 精度为15到16位,6,3. 小数型decimal,取值范围在1.0 10e28 至 7.9 10e28 精度为28到29位 deci

2、mal myMoney = 300.5; /默认double decimal myMoney = 300.5m; /或者M,7,4. 布尔型(bool),用来表示逻辑真或逻辑假 只有两种取值:true或false,bool i = true; char c = a; Console.WriteLine(i); i = false; Console.WriteLine(i);bool Alphabetic = (c 64 ,8,二、枚举型 enum,实质就是使用符号来表示的一组相互关联的数据 注意事项: 枚举元素的数据值是确定的,一旦声明就不能在程序的运行过程中更改; 枚举元素的个数是有限的,同

3、样一旦声明就不能在程序的运行过程中增减; 默认情况下,枚举元素的值是一个整数,第一个枚举数的值为 0,后面每个枚举数的值依次递增 1; 如果需要改变默认的规则,则重写枚举元素的值即可,例如:enum MyEnuma=101,b,c,d=201,e,f;,9,using System; using System.Windows.Forms; namespace TestEnum public partial class TestEnum : Formpublic TestEnum() InitializeComponent(); enum MyEnum a = 101, b, c, d = 20

4、1, e, f ; /声明枚举型private void TestEnum_Load(object sender, EventArgs e)MyEnum x = MyEnum.f; /使用枚举型MyEnum y = (MyEnum)202;string result =“枚举数x的值为“;result += (int)x; /将x转换为整数result += “n枚举数y代表枚举元素“ + y;lblShow.Text = result; ,10,三、结构型struct,结构型必须使用struct来标记。 结构型的成员 数据成员表示结构的数据项 方法成员表示对数据项的操作。 内置的结构型 Da

5、teTime:表示某个时间点 TimeSpan:表示某个时间段,struct Student public int no;public string name;public char sex;public int score; ;,11,using System; using System.Windows.Forms; namespace TestStru public partial class TestStru : Formstruct Student /声明结构型 /声明结构型的数据成员public int no;public string name;public char sex;pu

6、blic int score;/声明结构型的方法成员public string Answer() string result=“该学生的信息如下:“; result += “n学号:“ + no; /“n“为换行符result += “n姓名:“+ name;result += “n性别:“+ sex;result += “n成绩:“+ score;return result; /返回结果;,12,private void TestEnum_Load(object sender, EventArgs e)Student s; /使用结构型s.no = 101;s.name = “黄海“;s.s

7、ex = 男;s.score = 540;lblShow.Text = s.Answer(); /显示该生信息lblShow.Text += “nn“+DateTime.Now; /显示当前时间 ,13,2.2 常量与变量,常量 变量 数据类型转换,14,一、常量,1. 整型常量 无符号整型常量在书写时添加u或U标志。 长整型常量在书写时添加l或L标记。 2. 浮点型常量 单精度浮点型常量在书写时添加f或F标记 双精度型常量添加d或D标记。 3. 小数型常量 小数型常量的后面必须添加m或M标记 4. 字符型常量 (Unicode字符) 使用两个单引号来标记 转义字符常量 uhhhh 0dd x

8、hh 5. 布尔型常量 :true 、false 不可用其他数据值代替 6. 字符串常量 :使用两个双引号来标记,15,using System; using System.Collections.Generic; using System.Text;namespace ConsoleApplication1 class Programstatic void Main(string args)Console.WriteLine(0).GetType(); /有符号的位整型常量Console.WriteLine(0U).GetType(); /无符号的位整型常量Console.WriteLine

9、(0L).GetType(); /64位的长整型常量Console.WriteLine(0F).GetType(); /32位的浮点型常量Console.WriteLine(0D).GetType(); /64位的双精度型常量Console.WriteLine(0M).GetType(); /128位的小数型常量Console.WriteLine(0).GetType(); /16位的字符型常量Console.WriteLine(“0“).GetType(); /字符串常量Console.WriteLine(0.0).GetType(); /64位的双精度型常量Console.WriteLin

10、e(true).GetType(); /布尔型常量Console.WriteLine(u0041).GetType(); /16位的字符型常量 ,16,二、变量,1. 变量的概念 变量名:每个变量都必须有一个名字。变量命名应遵循标识符的命名规则,如必须以字母或下划线(_)打头,只能包含英文字母、数字、和下划线,不能包含空格等。 变量值:变量值存储在内存中;不同类型的变量,占用的内存单元(字节)数不同。在程序中,通过变量名来引用变量的值。 2. 变量的定义 例如:int a,b,c; 3.变量的初始化例如: float f11.25, f23.6, f3;,17,using System; us

11、ing System.Collections.Generic; using System.Text;namespace ConsoleApplication1 class Programstatic void Main(string args)int a = 12, b = 15, c, d, e;c = a + b;d = a - b;e = a * b;System.Console.WriteLine(“c=0td=1te=2“, c, d, e);/ 0,占位符,代表第一个参数 ,18,三、数据类型转换,1. 隐式转换 如果参与运算的数据类型不相同,则先转换成同一类型,然后进行运算; 转

12、换时按数据长度增加的方向进行,以保证精度不降低,例如int型和long型运算时,先把int数据转成long型后再进行运算; 所有的浮点运算都是以双精度进行的,即使仅含float单精度运算的表达式,也要先转换成double型,再作运算; 2. 显示转换 (类型说明符) (待转换的数据) 例如:(int)(x+y) 和c有区别 3. System.Convert类的类型转换方法 ToBoolean 、ToByte、ToChar、ToInt32、ToSingle、ToString 、ToDouble,19,using System; using System.Windows.Forms; names

13、pace TestVariable public partial class TestOperator : Formprivate void TestVariable_Load(object sender, EventArgs e)int a, b = 5;char c1 = A;a = c1; /字符型转整型float x = 3;x += b; /整型转浮点型lblShow.Text = “a=“ + a; /整型转为字符串lblShow.Text += “nx=“ + x; /浮点型转为字符串 ,20,static void Main(string args)double x;Conso

14、le.WriteLine(“Enter a number:“);x = Convert.ToDouble(Console.ReadLine();Console.WriteLine(x);,21,2.3 运算符与表达式,算术运算符与表达式 赋值运算符与表达式 关系运算符与表达式 逻辑运算符与表达式,22,一、算术运算符与表达式,C#算术运算符包括+、-、*、/、%、+、-共七种 如果是整数相除,结果为整数实数可以进行取余运算 自增+/自减-运算符 当+或-运算符置于变量的左边时,称之为前置运算,表示先进行自增或自减运算再使用变量的值,而当+或-运算符置于变量的右边时,称之为后置运算,表示先使用变

15、量的值再自增或自减运算 例如:设变量i=1、变量j=2,则表达式+i + j-的值为4,23,using System; using System.Windows.Forms; namespace TestVariable public partial class TestOperator : Formprivate void TestVariable_Load(object sender, EventArgs e)int i = 5, j = 5, p, q;p = (i+) + (i+) + (i+);q = (+j) + (+j) + (+j);string t = “ “;lblSho

16、w.Text = i + t + j + t + p + t + q;,8 8 18 21,24,二、赋值运算符与表达式,简单赋值运算符 一般形式为:变量=表达式 注意事项; 如果赋值号两边的数据类型不同,则系统将自动先将赋值号右边的类型将转换为左边的类型再赋值; 不能把右边数据长度更大的数值类型隐式转换并赋值给左边数据长度更小的数值类型。,float x; x=5.6; /x=5.6f,25,复合赋值运算符+=、-=、*=、/=、%=、&=、|=、=、=例如: a+=5 等价于a=a+5 x*=y+7 等价于x=x*(y+7) r%=p 等价于r=r%p,26,三、关系运算符与表达式,关系运

17、算符用来对两个操作数比较,以判断两个操作数之间的关系。 C#的关系运算符有=、!=、=, 关系运算符的优先级低于算术运算符。 由关系运算符组成的表达式称为关系表达式。 关系表达式的运算结果只能是布尔型值,要么是true,要么是false。 例如,设置变量i=5、j=4,则关系表达式i != j的结果为true。,bool x;x = 2 != 3; Console.WriteLine(“0“,x); True,27,四、逻辑运算符与表达式,C#的逻辑运算符包括!、&或&、|或|、。&和&的区别是:第一个操作数为false时,前者不再计算第二个操作数的值 逻辑运算符的优先级低于关系运算符的优先级

18、,但高于赋值运算符的优先级。 由逻辑运算符组成的表达式称为逻辑表达式。 逻辑表达式的运算结果只能是布尔型值,要么是true,要么是false。 例如,设置变量i=5、j=4,则逻辑表达式 i !=j & i = j的结果为true。,28,using System; using System.Windows.Forms; namespace TestVariable public partial class TestOperator : Formprivate void TestVariable_Load(object sender, EventArgs e)int i = 25, j = 1

19、2;bool k;string result = “ i!=j的值为“ + (i != j);result += “n i!=j ,29,数组Array,1. 什么是数组 数组是一种由若干个变量组成的集合,数组中包含的变量称为数组的元素,它们具有相同的类型。 数组元素可以是任何类型,包括数组类型。 数组元素的个数称为数组的长度,数组长度为0时称数组为空数组。 数组元素没有名称,只能通过索引来访问,索引从零开始。 具有 n 个元素的数组的索引是从 0 到 n-1 System.Array提供了Length属性,CopyTo/Sort等方法,30,static void Main(string a

20、rgs)int a = new int3;Console.WriteLine(“请输入数组的值:“);for (int i = 0; i a.Length; i+)ai = Convert.ToInt32(Console.ReadLine();,2. 数组的声明和创建 一般形式:数组类型 数组名 = new 数组类型数组长度,31,3. 数组初始化 (1)数组类型 数组名 = new 数组类型数组长度初始 值列表int a = new int 1,2,3;(2)在创建时初始化,还可以简化为:int a = 1,2,3;(3)先声明,后初始化int a ;a = new int 1,2,3;,3

21、2,字符串string,1. 字符串常量使用双引号来标记,例如,“Hello World“ 2. 字符串是一个由若干个Unicode 字符的组成字符数组。 例如,string s=“中华人民共和国“ 则执行char c=s6;之后,字符型变量c的值为国 3. C#允许使用关系运算符=、!=来比较字符串4. System.Stringstring 是 System.String 的别名,可创建不可变的字符串,包含Length、Copy、IndexOf、LastIndexOf、Insert、Remove、Replace、Split、Substring、Trim等成员,33,2.5 程序的分支语句,

22、一、if语句 二、switch语句,34,一、if语句,1. 语句结构: if (表达式) 语句1 else 语句2 2. 语句逻辑:如果表达式的值为true,则选择执行“语句1”,否则选择执行“语句2”。 3. 当省略else子句时,表示单分支结构 4. 在if语句中嵌套if语句时,表示多分支结构,35,static void Main(string args)string comparison;Console.WriteLine(“Enter a number:“);double var1 = Convert.ToDouble(Console.ReadLine();Console.Writ

23、eLine(“Enter another number:“);double var2 = Convert.ToDouble(Console.ReadLine();if (var1 var2)comparison = “less than“;else if (var1 = var2)comparison = “equal to“;elsecomparison = “greater than“;Console.WriteLine(“The first number is 0 the second number.“,comparison); ,36,二、switch语句,1. 语句结构: switc

24、h(表达式) /只能整型、字符型或字符串表达式 /不能是关系表达式或逻辑表达式 case 常量1:语句1;break;case 常量2:语句2;break;case 常量n:语句n;break;default: 语句n+1; 2. C# 不支持从一个 case 标签显式贯穿到另一个 case 标签,因此在每一个 case 块的后面都必须有一个break语句,37,static void Main(string args)const string myName = “tom“;const string prettyName = “rose“;const string sillyName = “p

25、loppy“;string name;Console.WriteLine(“What is your name?“);name = Console.ReadLine();switch (name.ToLower()case myName:Console.WriteLine(“You have the same name as me!“);break;case prettyName:Console.WriteLine(“My, what a pretty name you have!“);break;case sillyName:Console.WriteLine(“Thats a very s

26、illy name.“);break;Console.WriteLine(“Hello 0!“, name); ,38,2.6 程序的循环语句,while语句 do/while语句 for语句 foreach语句 循环语句的嵌套 break与continue语句,39,一、while语句,1. 语句结构: while(表达式) 语句; 2. 语句逻辑(见右图) 3 使用方法:使用循环控制变量来控制循环,注意在循环之前循环控制变量的初值应满足循环条件,在循环过程中,每循环一次需要修改循环控制变量的值,当循环控制变量的值将不符合循环条件时循环终止。,40,static void Main(stri

27、ng args)double balance, interestRate, targetBalance;Console.WriteLine(“What is your current balance?“);balance = Convert.ToDouble(Console.ReadLine();Console.WriteLine(“What is your current annual interest rate (in %)?“);interestRate = Convert.ToDouble(Console.ReadLine() / 100.0;Console.WriteLine(“Wh

28、at balance would you like to have?“);targetBalance = Convert.ToDouble(Console.ReadLine();int totalYears = 0;while (balance targetBalance)balance *= 1+interestRate;+totalYears;Console.WriteLine(“In 0 year1 youll have a balance of 2.“,totalYears, totalYears = 1 ? “ : “s“, balance); ,41,二、do/while语句,1.

29、 语句结构: do 语句; while(表达式); 2. 语句逻辑(见右图) 3. while语句与do/while语句的区别前者循环体执行的次数可能是0次,而后循环体执行的次数至少是1次,42,static void Main(string args)double balance, interestRate, targetBalance;Console.WriteLine(“What is your current balance?“);balance = Convert.ToDouble(Console.ReadLine();Console.WriteLine(“What is your

30、current annual interest rate (in %)?“);interestRate = Convert.ToDouble(Console.ReadLine() / 100.0;Console.WriteLine(“What balance would you like to have?“);targetBalance = Convert.ToDouble(Console.ReadLine();int totalYears = 0;dobalance *= 1+interestRate;+totalYears;while (balance targetBalance);Con

31、sole.WriteLine(“In 0 year1 youll have a balance of 2.“,totalYears, totalYears = 1 ? “ : “s“, balance); ,43,三、for语句,语句结构: for(表达式1; 表达式2; 表达式3) 语句; 说明:表达式1为赋值表达式,为循环控制变量赋初始值;表达式2为布尔型的表达式,用来检测循环条件是否成立;表达式3赋值表达式,用来更新循环控制变量的值,以保证循环能正常终止。,44,using System; class TestFor static void Main()int i, j, k;for (

32、i = 0; i = 0; j-) /j表示第i行左边的第j个空白字符Console.Write(“ “);for (k = 0; k 2 * i + 1; k+) /k表示第i行的第k个星字符Console.Write(“*“);Console.Write(“n“);,45,四、foreach语句,语句结构: foreach(类型 循环变量 in 表达式) 语句; 说明:对容器中所有元素进行遍历访问。类型是循环变量的类型,应该与表达式的数据类型保持兼容,表达式一般是一个数组名或集合名。 执行过程: 1、自动指向数组或集合中的第一个元素 2、判断该元素是否存在,如果不存在,则结束循环 3、把第

33、一个元素的值赋给循环变量 4、执行循环体语句 5、自动指向下一个元素,之后重复以上步骤注意:不要使用foreach语句来更改集合内容,以避 免产生不可预知的副作用。如果要更改数组或集合的内容,建议使用for语句 。,46,using System; class TestForeach static void Main()string names = new string5;Console.WriteLine(“请输入五个人的姓名:“);for (int i = 0; i names.Length; i+)namesi=Console.ReadLine();Console.WriteLine(“

34、已输入的姓名如下,请核对:“);foreach (string name in names)Console.Write(“0t“, name); ,47,五、循环语句的嵌套,48,六、break与continue语句,break语句 在switch语句中用来跳转执行switch语句的后续语句 在循环语句中用来提前终止循环,跳转出循环结构 continue语句 continue语句不是用来终止并跳出循环结构的,而是忽略continue后面的语句,直接进入本循环结构的下一次循环操作。,49,本章要点,本章介绍了C#的以下语法基础C#值类型,包括简单的整型、浮点型、字符型、小数型等,以及复杂的枚举型

35、和结构型C#程序中的常量、变量及其应用方法。 C#常用的运算符,包括算术运算符、赋值运算符、关系运算符、逻辑运算符以及这些运算符所组成的表达式。 程序流控制语句,包括两个分支语句(if和switch)、四个循环语句(while、do/while、for、foreach)以及两个跳转语句(break、continue)等。,50,作业: 1、输入两个整数,输出和。 2、输出整数数组里的所有偶数。,51,using System; using System.Collections.Generic; using System.Text;namespace ConsoleApplication1 cl

36、ass Programstatic void Main(string args)int x, y;Console.WriteLine(“请输入第一个整数值:“);x = Convert.ToInt32(Console.ReadLine();Console.WriteLine(“请输入第二个整数值:“);y = Convert.ToInt32(Console.ReadLine();Console.WriteLine(“和为:0“,x+y); ,52,static void Main(string args)int a = new int3;Console.WriteLine(“请输入数组的值:“);for (int i = 0; i a.Length; i+)ai = Convert.ToInt32(Console.ReadLine();Console.WriteLine(“数组中偶数如下,请核对:“);foreach (int x in a)if (x%2=0)Console.Write(“0t“, x);,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报