vs 新版2章节课件_第1页
vs 新版2章节课件_第2页
vs 新版2章节课件_第3页
vs 新版2章节课件_第4页
vs 新版2章节课件_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

主讲教师:本课学时:联系方式:C#程序设计教程第二章C#数据类型与表达式

CONTENT本章主要内容介绍2.1C#的基本语法2.2基本数据类型

2.3常量

2.4变量

2.5表达式

2.6小结本章学习目标:掌握C#的基本语法熟练应用C#的数据类型熟练掌握各种运算符的使用规则能够根据需要写出正确的表达式2.1C#的基本语法1.Using关键字:用以引用Microsoft.Net框架类库中的现有资源。这些资源以命名空间的形式存在。2.System命名空间:提供了对构建应用程序所需的所有系统功能的访问。3.类:是C#应用程序最基本的编程单元。4.Namespace关键字:使用Namespace关键字命名空间,可以把类组织成一个逻辑上相关联的层次结构。5.Main方法:Main方法用来描述类的行为。6.语句:是C#程序中执行操作的指令,语句之间用分号分隔。语句可以写在一行,也可以写多行。7.大括号:”{“和”}”用以标识代码块的开始和结束,必须配对使用。8.缩进:用来指出语句所处的代码块。9.区分大小写:C#语言区分大小写。例如A和a是不同的变量。10:空白区:除了引号中,编译器会忽略所有的空白区,可以用空白区来改善代码格式。11.注释:在程序中插入双斜杆”//”,可以随后书写不跨行的注释;或者以”/*”开始,以”*/”结束。关键字在C#中,关键字代表有特定功能的一些英文单词,代表不同的含义,它们的颜色是特别的明显的。但是他们不能在程序中用作变量名。2.2基本数据类型C#中的数据类型分为两个基本类别

值类型

表示实际数据只是将值存放在内存中

值类型都存储在堆栈中

简单类型、枚举、结构引用类型

表示指向数据的指针或引用是内存堆中对象的地址

为null,则表示未引用任何对象类、接口、数组和委托两个特殊的类object与string区别值类型的变量本身包含他们的数据,而引用类型的变量包含的是指向包含数据的内存块的引用。

值类型和引用类型的区别,就在于当函数参数传递的时候:

值类型是把自己的值复制一份传递给别的函数操作.无论复制的值怎么被改变.其自身的值是不会改变的。

而引用类型是把自己的内存地址传递给别的函数操作.操作的就是引用类型值的本身.所以值被函数改变了。这就是传值和传址的区别C#的基本数据类型usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceConsoleApplication3{classProgram{staticvoidMain(string[]args){//值类型变量intperson=10;Console.WriteLine("person的原值:"+person);

Add(person);

Console.WriteLine("person的值并没有因为函数的修改而修改:"+person);

Console.ReadLine();

}

publicstaticvoidAdd(intperson)

{

person+=10;

Console.WriteLine("值类型当参数被传递并修改之后"+person);

}

}}输出结果:C#的基本数据类型usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceConsoleApplication3{classProgram{staticvoidMain(string[]args){//引用类型变量Personperson=newPerson();Console.WriteLine("Blood的原值:"+person.Blood);

Add(person);

Console.WriteLine("Blood的值因为函数的修改而修改:"+person.Blood);

Console.ReadLine();

}

publicstaticvoidAdd(Personperson)

{

person.Blood+=10;

Console.WriteLine("引用类型当参数被传递并修改之后"+person.Blood);

}

}

classPerson

{

publicintBlood=10;

}}输出结果:2.2基本数据类型12345678910111213数值类型的附加后缀。数值类型的附加后缀类别后缀描述整数U或u无符号L长整形UL无符号长整形实数F或f浮点型D或d双精度型M或m十进制decimalbalance=3400.20;//错误decimalbalance=3400.20M;枚举C#枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一种有效的方法。枚举枚举(enum,Enumerator的缩写)是一组已命名的数值(整型)常量用enum关键字来创建枚举publicenumWeekDays{ Monday, Tuesday, Wednesday, Thursday, Friday}

publicenumWeekDays{ Monday=1, Tuesday=2, Wednesday=3, Thursday=4, Friday=5}01234

枚举的五个成员分别表示不同的值枚举的使用:先创建,再声明枚举变量,系统预定义的枚举使用枚举的好处WeekDayswd;wd=WeekDays.Friday;//输出变量wd,显示Friday,不是4

枚举赋值枚举的应用usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace枚举应用{publicclassEnumSample{enumColors{Red=1,Blue=2};publicstaticvoidMain(){EnummyColors=Colors.Red;Console.WriteLine("Thevalueofthisinstanceis{0}",myColors.ToString());Console.ReadLine();}}

}输出结果:枚举的用途

通过定义一个枚举类型,用它来保存一组数据,比起用变量来保存这些数据,枚举类型更能直观地表示一组数据。structstructEx{publicintstructDataMember;

publicvoidstructMethod1(){ //structMethod1实现}}自定义数据类型可以在其内部定义方法无法实现继承属于值类型主要结构:structstudent{ publicintstud_id; publicstringstud_name; publicfloatstud_marks; publicvoidshow_details() { //显示学生详细信息 }}结构数据成员方法所有与Student关联的详细信息都可以作为一个整体进行存储和访问结构的用途

实际应用中,为了解决复杂的数据类型,需要把一系列相关的变量组织成为一个整体的过程,我们需要用结构来定义,用以减少程序的工作量,提高代码的直观性。2.3常量

语法:访问修饰符

const数据类型常量名=常量值;PublicPrivateProtected常量用于在整个程序中将数据保持同一个值

常量usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace常量{classProgram{staticvoidMain(string[]args){//PI常量PIconstfloat_pi=3.14F;//由地球引力引起的加速度常量,单位为cm/s*sconstfloat_gravity=980;//钟摆的长度intlength=40;//钟摆的周期doubleperiod=0;//钟摆周期的计算公式period=2*_pi*Math.Sqrt(length/_gravity);Console.WriteLine("钟摆的周期为{0}秒",period);Console.ReadKey();}}}声明常量在表达式中使用常量const关键字用于声明常量输出结果:2.4变量语法:访问修饰符数据类型变量名PublicPrivateProtectedintstringfloat……糖盐胡椒粉盐胡椒粉糖intfloatstring25.4“Test”变量用于存储特定数据类型的值doublefloat2.4变量usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace变量_2_{classProgram{staticvoidMain(string[]args){//声明布尔型、字符串型、整型、短整型和浮点型变量booltest=true;stringval="Jamie";shortnum1=19;intnum2=14000;floatnum3=14.5f;//显示变量值 Console.WriteLine("布尔值="+test);

Console.WriteLine("字符串值="+val);

Console.WriteLine("短整型值="+num1);

Console.WriteLine("整型值="+num2);

Console.WriteLine("浮点值="+num3);

Console.ReadKey();

}

}}变量中存储的值取决于该变量的类型输出结果:2.5表达式

使用C#中的运算符和表达式算术运算符和表达式关系运算符和表达式

逻辑运算符和表达式

位运算符赋值运算符和表达式

条件运算符和表达式

表达式中的类型转换运算符和表达式运算符和表达式Result=number*100变量变量常量操作数表达式操作数和运算符的组合运算符一元、二元、三元运算符算术运算符和表达式

类别运算符说明表达式算术运算符+执行加法运算(如果两个操作数是字符串,则该运算符用作字符串连接运算符,将一个字符串添加到另一个字符串的末尾)操作数1+操作数2-执行减法运算操作数1-操作数2*执行乘法运算操作数1*操作数2/执行除法运算操作数1/操作数2%获得进行除法运算后的余数操作数1%操作数2++将操作数加1操作数++或++操作数--将操作数减1操作数--或--操作数~将一个数按位取反

~操作数算术运算符usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace算术运算符{classProgram{staticvoidMain(string[]args){//x2的系数intcoefficient1=2;//x的系数intcoefficient2=-7;//二次方程的常数值intconstant=3;//存放表达式b2-4ac的值doubleexpression=0;doublex1=0;doublex2=0;Console.WriteLine("二次方程为:{0}x2+{1}x+{2}",coefficient1,coefficient2,constant);

expression=Math.Sqrt(coefficient2*coefficient2-(4*coefficient1*constant));

x1=((-coefficient2)+expression)/(2*coefficient1);

x2=((-coefficient2)-expression)/(2*coefficient1);

Console.Write("x={0:F2}",x1);

Console.Write("或");Console.WriteLine("x={0:F2}",x2);Console.ReadKey();}}}将值赋给变量在表达式中使用的算术运算符输出结果:关系运算符和表达式

类别运算符说明表达式关系运算符>检查一个数是否大于另一个数

操作数1>操作数2<检查一个数是否小于另一个数

操作数1<操作数2>=检查一个数是否大于或等于另一个数

操作数1>=操作数2<=检查一个数是否小于或等于另一个数

操作数1<=操作数2==检查两个值是否相等

操作数1==操作数2!=检查两个值是否不相等操作数1!=操作数2关系运算符usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace关系运算符{classProgram{staticvoidMain(string[]args){inta=25,b=3;boold=a>b;Console.WriteLine("a<b:"+d);inte=3;if(e!=0&&a/e>5)Console.WriteLine("a/e:"+a/e);intf=0;if(f!=0&&a/f>5)Console.WriteLine("a/f:"+a/f);elseConsole.WriteLine("f="+f);Console.ReadKey();}}}输出结果:逻辑运算符和表达式

类别运算符说明表达式逻辑运算符&&对两个表达式执行逻辑“与”运算

操作数1&&操作数2||对两个表达式执行逻辑“或”运算操作数1||操作数2!对两个表达式执行逻辑“非”运算!操作数()将操作数强制转换为给定的数据类型

(数据类型)操作数逻辑运算符和表达式usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace逻辑运算符{classProgram{staticvoidMain(string[]args){inta=23,b=34;doublec=1.1,d=2.2;if(a>30&&b>30)Console.WriteLine("false");elseConsole.WriteLine("true");if(a>2.0&&b>2.0)Console.WriteLine("false");elseConsole.WriteLine("true");Console.ReadKey();}}}输出结果:位运算符类别运算符说明表达式位运算符>>用于将左操作数的每一个二进制位左移右操作数位

操作数>>2<<用于将左操作数的每一个二进制位左移右操作数位操作数<<2&用于把两个操作数对应的二进制位进行逻辑与操作

操作数1&操作数2|用于把两个操作数对应的二进制位进行逻辑或操作

操作数1|操作数2^用于把两个操作数对应的二进制位进行异或操作

操作数1^操作数2~对操作数取反~操作数位运算符usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace位运算符{classProgram{staticvoidMain(string[]args){intx=16;Console.WriteLine(x);inty=x>>2;Console.WriteLine(y);y=y>>2;Console.WriteLine(y);y=y>>2;Console.WriteLine(y);Console.ReadKey();}}}输出结果:赋值运算符和表达式

类别运算符计算方法表达式赋值运算符+=运算结果=操作数1+操作数2X+=5-=运算结果=操作数1-操作数2X-=5*=运算结果=操作数1*操作数2X*=5/=运算结果=操作数1/操作数2X/=5%=运算结果=操作数1%操作数2X%=5赋值运算符类别运算符说明表达式赋值运算符=给变量赋值操作数1=操作数22.5.5赋值运算符和表达式

赋值运算符(=)变量=表达式;例如:身高=177.5;体重=78;性别=“m”;条件运算符和表达式

类别运算符说明表达式三元运算符(条件运算符)?:检查给出的第一个表达式expression是否为真。如果为真,则计算operand1,否则计算operand2。这是唯一带有三个操作数的运算符

表达式?操作数1:操作数2条件运算符和表达式

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;classMainClass{staticdoublesinc(doublex){doubles=(x!=0.0)?Math.Sin(x)/x:1.0;returns;}staticvoidMain(){Console.WriteLine(sinc(0.2));Console.WriteLine(sinc(0.1));Console.WriteLine(sinc(0.0));Console.ReadLine();}}输出结果:表达式中的类型转换

生活例子:动物园有两扇可以调整高度的门,一般情况下,动物分两类:相对高大的动物和相对矮小的动物。高大的动物进高的门,矮小的动物进低的门。如果这时动物们有特殊情况,矮小的动物默许进入高的门,高大的动物需要强制调整门的高度才可以进入。这就是类型转换的原理。隐式转换动物园有两扇可以调整高度的门,一般情况下,动物分两类:相对高的动物和相对低的动物。高

温馨提示

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

最新文档

评论

0/150

提交评论