第二讲案例语言基础_第1页
第二讲案例语言基础_第2页
第二讲案例语言基础_第3页
第二讲案例语言基础_第4页
第二讲案例语言基础_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

十天掌握程序设计基础

—第二讲语言基础潘志红ITCAST签约讲师本讲内容1.数据类型2.常量及变量3.运算符及表达式4.数组5.过程6.函数

1.数据类型公共数据类型系统(CommonTypeSystem,CTS)公共数据类型系统(CTS)定义了公共语言运行时(CLR)环境所支持的数据类型。使用的数据与CTS中的数据类型直接对应,而且某些类型的数据可以直接相互转换。CTS支持两种类型:值类型:所有数值数据类型、Boolean、Char、Date所有结构、枚举类型引用类型:String、所有数组和类数值数据类型数值数据类型,用以处理不同形式的数字。数值数据类型又分为整数类型和非整数类型两种。(1)整数类型有符号整数类型包括:Short(16位)Integer(32位)Long(64位)无符号整数类型包括:Byte(8位)(2)非整数类型定点数Decimal(128位)浮点数:Single(32位)单精度浮点数Double(64位)双精度浮点数。

字符数据类型字符数据类型,用以处理可打印和显示的字符。字符数据类型不能和数值字类型数据直接进行转换。

(1)Char类型

Char类型(也称为单个字符数据类型)为单个两字节(16位)例如:DimynCharAsCharynChar="y"

(2)String类型

String类型(也称为字符串数据类型)为0个或多个双字节Unicode字符序列。例如:

DimstrNameAsStringstrName=“tom”strName=“”

布尔及日期类型(3)布尔数据类型

Boolean布尔数据类型(32位)只有两个值:真(True)和假(False),经常被用来表示逻辑判断的结果。例如:DimdasBooleand=true

(4)日期数据类型

Date日期数据类型(64位)表示日期时间,其中存储了从公元1年1月1日到公元9999年12月31日,时间从0:0:0到11:59:59。注意:日期数据必须用“#”括起来。日期时间数据中可以只有日期,也可以只有时间。例如:DimOlyDate,MyBirthdayAsDateOlyDate=#08/08/20088:08:08PM#MyBirthday=#01/01/2000#对象数据类型(5)对象数据类型

Object对象数据类型为一个32位地址,它指向应用程序或其他应用程序中的一个对象。如果数据为Object类型,则它可以指向任何应用程序可处理的对象。它可以接收任何类型数据。当其中包含值类型时,Object类型数据被作为值类型处理;当其中包含引用类型时,Object类型数据被作为引用类型处理。例如:Dimw,sAsObjectw=OpenDatabase(“c:\xs.mdb”)s=“Hello!”基本数据类型数据类型存储空间(Byte)取值范围说明String0~20到20亿(231)Byte10~255无符号Char20~655350~65535的无符号整型,代表Unicode字符,Char不能直接转换成数值类型必须通过Asc(),AscW()函数Boolean2True或FalseShort2-32768~32767Integer4-2147483648~7Long8Single4单精度浮点Double8双精度浮点Decimal16Date81/1/1(0:00:00)-9999/12/31(23:59:59)Object4

数据类型转换

将数据值从一种数据类型改变为另外一种数据类型的过程称为数据类型转换。根据涉及的类型和代码语法的不同,转换可被分为扩展型或紧缩型转换,也可被称为隐式或显式转换。1.扩展型和紧缩型转换

(1)扩展型转换

收缩转换标准的收缩转换包括:上表(表2-3)中列出的所有扩展转换的反向转换。收缩转换不一定总会成功,也就是说它们在运行时可能会执行失败。如果目标类型不能接收被转换的值,则将产生错误。例如,数值类型Long型数据转换为Integer型时就可能会导致数据溢出。所以当进行收缩转换时,首先需要判断源值是否可被转换为目标类型,并且不会导致错误,再使用收缩转换进行转换。隐式和显式转换

隐式转换不需要在代码中使用任何特殊语法。例如:

DimaAsByte

DimbAsInteger

b=50

a=b

显式转换需要使用类型转换关键字,也可以称为转换函数。例如:

m=26.8'm为Decimal数据类型

n=Cint(m)'n现在为27,为Integer数据类型

k=Ctype(m,Integer)'使用Ctype将m转换为Integer数据类型类型转换函数转换函数返回值对表达式的要求CBoolBoolean任何字符串及数字类型CByteByte0到255CCharChar0到65535CDateDate任何合法的日期及时间CDb1Double负数为-1.79769313486231E308到-4.94065645841247E-324;正数为4.94065645841247E-324到1.79769313486231E308CDecDecimal无小数点的整数范围是-93543950335到93543950335CIntInteger从-2147483.648至2147483.648;允许分数,小数部分采取四舍五入的原则CLongLong-9223372036854775.808至9223372036854775.807;允许分数,小数部分采取四舍五入的原则CObjObject任何合法的表达式CShortShort-32768至32767;允许分数,小数部分采取四舍五入的原则CSngSingle负数为-3.402823E38到-1.401298E-45;正数为1.401298E-45到3.402823E38CStrString可以是“Boolean”类型,返回“True”或“False”;也可以是“Date”类型,返回日期的缩写形式;或者是数字类型,返回代表这个数字的字符串。枚举类型所谓枚举,是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。枚举可以通过在窗体模块、标准模块或公用类模块中的声明部分用Enum语句声明一个枚举类型来创建。[Public”->”Private]Enum类型名称 成员名[=常数表达式]

成员名[=常数表达式] …EndEnum枚举类型实例在枚举中的第一个常量被初始化为0,其后的常量则初始化为比其前面的常量大1的数值。PublicEnumWorkDays 枚举类型的引用:

Sunday=0 DimThisDayAsWorkDays

Monday ThisDay=WorkDays.Saturday

Tuesday

Wednesday Thursday Friday Saturday InValid=-1EndEnum2.常量及变量变量

变量名的命名规则

变量名的第1个字符必须是字母、汉字或下划线。如:sum,_a,中国,x3。变量名中不能包含空格、小数点以及各种符号。组成变量名的字符数不能超过255个字符。变量名不能是关键字。如:If,Integer

变量名在同一范围内必须是唯一的。为变量命名的注意事项给变量取名最好使用有明确实际意义。虽然输入时会很繁琐,但会增加程序的可读性和易维护性。公有变量名中每个独立的单词都应以大写字母开头。如:CustomerName。避免使用缩写。如:accountNumber的可读性比缩写acctno好当声明局部或私有变量时,第一个单词的首字母应小写。如:newCustomer。变量名不能与过程名和符号常量名相同。尽量采用建议的变量名前缀或后缀的约定来命名,以便区分变量的类型。如:intMax,strName变量的类型和定义在定义变量时指定其类型声明语句的格式:[Dim|Public|Friend|Private|Shared|Static]<变量名>As[<类型>]例如:PrivateNumAsIntegerDimamountAsDoubleStaticYourNameAsStringPublicBillPaidAsDecimal也可以同时声明多个变量

Dimx,yAsInteger

Dimu,v变量的初始化在声明变量的同时可以赋初值。如:DimstrAsstring=“HelloWorld!”只读变量不能再改变。如:

ReadOnlyxAsInteger=25在声明中使用类型标识符来指定变量的数据类型。如:DimL%‘%表示变量L为Short数据类型PublicM&‘&表示变量M为Long数据类型DimW@‘@表示变量W为Decimal数据类型DimQ!‘!表示变量Q为Single数据类型PrivateV$‘$表示变量V为String数据类型Staticx#‘#表示变量x为Double数据类型变量的隐式声明和显示声明隐式声明在代码开头加入OptionExplicitoff语句或在集成开发环境中,设置项目属性,更改OptionExplicit的选项中设置off。例如:DimtimesalaryasInteger=80MySalary=timesalay*10显示声明OptionExpliciton不能使用未声明的变量,否则报错。

常量直接常量1.

字符串常量字符串常量就是用双引号括起来的一串字符。这些字符可以是除双引号和回车、换行符以外的所有字符。例如:"A","123"。如果一个字符串仅有双引号(即双引号中无任何字符),则称该字符串为空串,即“”。2.

数值常量数值常量就是常数,共有2种数值类型:整数和非整数。例如:12,-25.6,1.23E+12。3.

布尔常量布尔常量只有两个值:True和False。4.

日期时间常量日期时间常量就是用两个“#”括起来的表示日期时间的常量,但是该常量一定要符合日期时间书写格式。例如:#01/20/2005#,#12/20/200410:20:40Am#。符号常量符号常量又分为两种:内部(系统定义)常量和符号(用户定义)常量1.系统内部定义常量内部或系统定义的常量是和控件提供的。这些常量可以与应用程序的对象、方法和属性一起使用,在代码中可以直接使用它们。如:MsgBoxResult.OK返回值1。2.用户定义的符号常量用户定义符号常量是由用户本人根据需要自行创建的符号常量用户定义符号常量使用Const语句来给常量分配名字、值和类型声明常量的语法格式为:[Public|Private|Friend]Const〈常量名〉[As〈数据类型〉]=〈表达式〉例如:ConstPIasSingle=3.141593.运算符与表达式算术运算符算术运算符的优先级字符串运算符和字符串表达式一个字符串表达式由字符串常量、字符串变量、字符串函数和字符串运算符组成。提供了两个字符串运算符“&”和“+”,用于连接两个或更多的字符串。字符串表达式的格式为:〈字符串1〉&|+〈字符串2〉[&|+〈字符串3〉…]例如:“China”&“Beijing”‘其结果为:“ChinaBeijing”“123”+“45”‘其结果为:“12345”4.数组定义:数组是一组同类型变量的集合,用来处理同一类型的成批数据。例如:Dima,b,c,d,eAsInteger

Dima(4)AsInteger注意:数组必须先声明后使用。数组为引用类型,这意味着:数组变量包含指向数据的指针,这些数据构成了元素和控件信息;当将一个数组赋予另一个数组时,只是拷贝指针而不是数据a(0)a(1)a(2)a(3)a(4)数组声明声明一维数组形式如:

Dim变量名(数组元素的初始数码)As类型名称例:为表示100个学生的成绩,声明

Dimmark(99)AsInteger声明二维数组形式如:

Dim变量名(维数定义)As类型名称例:声明一个名称为arr2的二维数组

Dimarr2(2,3)AsInteger

元素个数(2+1)╳(3+1)=12例:声明一个名称为arr3的三维数组

Dimarr3(2,3,4)AsInteger

元素个数(2+1)╳(3+1)╳

(4+1)=60数组初始化如果要元素,则应该使用如下语法:Dimm()asshort={1,2,3,4,5,6,7,8,9,10}数组重定义在中,可以随时重新分配数组的尺寸。 Dimm()asInteger Redimm(12)每次重新分配数组尺寸时,在ReDim语句中指定Preserve关键字,则可以保留原有数据,否则,数据会丢失。 ReDimPreservem(ubound(m)+10)数组的操作数组赋值DimDemoarry(1)Demoarry(0)=“姓名” Demoarry(1)=1.78多维数组的赋值是通过多重循环来实现的。Dima(2,5)asshortFori=0to2 Forj=0to5 a(i,j)=i*j NextjNexti a(0,0)a(0,1)a(0,2)a(0,3)a(0,4)a(0,5)a(1,0)a(1,1)a(1,2)a(1,3)a(1,4)a(1,5)a(2,0)a(2,1)a(2,2)a(2,3)a(2,4)a(2,5)数组的复制单个数组元素可以像简单变量一样从一个数组复制到另一个数组。

dima(2,3),b(4,5)asintegera(2,3)=20b(3,4)=50a(2,3)=b(3,4)5.过程VisualBasic中使用的过程包括以下3种:无返回值的子过程有返回值的函数过程属性过程子过程子过程(sub过程)是在响应事件时执行的代码块。子过程的语法为:[{Public“->”Protected“->”Friend“->”ProtectedFriend“->”Private}] Subname[(变量声明)] [statements] [ExitSub] [statements] EndSub事件过程与通用过程1.事件过程

在VisualBasic.NET中的对象对一个事件的发生做出确认时,便自动用相应于事件的名字调用该事件的过程。因为名字在对象和代码之间建立了联系,所以说事件过程是附加在窗体和控件上的。事件过程的格式:PrivateSub<控件名_事件名>([参数列表])[<语句块>]EndSub

实例:事件过程2.通用过程

编写的一个公共过程,它独立于事件过程之外,可供其他事件调用通用过程的格式:[<访问权限>]Sub<通用过程名>([参数列表])[<语句块>]EndSub实例:通用过程6.函数内部函数,如Sqrt,Cos等。自定义函数自定义函数过程的语法为:[{Public“->”Protected“->”Friend“->”ProtectedFriend“->”Private}]Function过程名[(arglist)][Astype] [statements] [过程名=表达式“->”Return表达式] [ExitFunction] [statements]EndFunctionSub过程和Function过程的区别1.调用Sub过程相当于执行一个语句,不返回值;而调用Function过程要返回一个值。2.与变量相同,函数过程也有数据类型,这就决定了返回值的类型。3.Function过程返回的值有两种方法:通过“过程名=表达式”把它的值赋给过程名Functionxbc(byvalaasinteger,byvalbasinteger)asintegerxbc=Sqrt(a^2+b^2)EndFunction使用Return关键字返回值Functionxbc(byvalaasinteger,byvalbasinteger)asintegerReturnSqrt(a^2+b^2)EndFunction过程的调用Sub过程调用可以看做独立的基本语句。Function过程调用要返回一个值,所以通常出现在表达式中。1.调用Sub过程(两种方式)一种是把过程的名字放在一个Call语句中,格式为:Call过程名[(实际参数)]一种是把过程名作为一个语句来使用,格式为: 过程名[(

温馨提示

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

最新文档

评论

0/150

提交评论