第一章.语法基础
一.数据类型
1.基本数据类型
数值类型的数据类型
| ||
数据类型
|
表示方式
|
取值范围
|
整型
|
Integer
|
-2^31 ~ 2^31-1
|
字节型
|
Byte
|
0 ~ 2^8-1
|
短整型
|
Short
|
-2^15 ~ 2^15-1
|
长整型
|
Long
|
-2^63 ~ 2^63-1
|
单精度
|
Single
|
-3.402823E38 ~ -1.401298E-45(对于负数)
1.401298E-45 ~ 3.402823E38(对于正数)
|
双精度
|
Double
|
-1.79869313486232E308 ~ -4.94065645841247E-324(对于负数)
4.94065645841247E-324 ~ 1.79869313486232E308(对于正数)
|
小数
|
Decimal
|
当小数位为0时:
-79228162514264337593543950335 ~ 79228162514264337593543950335
当小数位为28时:
-7.9228162514264337593543950335 ~ 7.9228162514264337593543950335
|
文本类型的数据类型
| ||
字符串型
|
String
|
用于存放任何形式的字符串,包括一个字符或者多行字符
|
字符型
|
Char
|
用于存放一个字符,它以0 ~ 65535之间数字的形式存储
|
其他数据类型
| ||
日期型
|
Date
|
必须用mm/dd/yyyy的格式表示,
也可以存储时间(00:00:00 ~ 23:59:59之间的任何时间)
|
布尔型
|
Boolean
|
取值为True或者False
|
对象型
|
Object
|
|
2.用户自定义数据类型
语法:
[Public|Private|Protected]Structure structname
{Dim|Public|Private|Friend}member1 As datatype1
……
{Dim|Public|Private|Friend}memberN As datatypeN
End Structure
例:定义一个Employee结构:
Structure Employee
Public Name As String
Public Gender As String
……
Private Salary As Decimal
End Structure
引用该数据类型:
Dim Employee1 As Employee
Employee1.Nam=”李薄”
Employee1.Gender=”Female”
……
Employee1.Salary=3000.00
二.变量
数据类型
|
前缀
|
Boolean
|
bln
|
Byte
|
byt
|
Char
|
chr
|
Date
|
dat
|
Double
|
dbl
|
Decimal
|
dec
|
Integer
|
int
|
Long
|
lng
|
Single
|
sng
|
Short
|
sho
|
String
|
str
|
Object
|
obj
|
1.定义:
Dim x as String
Dim y as Integer=100
Dim z,u as String
Dim a,b as String,c,d as Integer
三.运算符
1).赋值运算符 =、+=、-=、*=、/=、/=、&=、^=
2).算术运算符 +、-、*、/、/、Mod和^
3).字符串连接运算符+、&
Sub Page_Load(sender as Object,e as EventArgs)
Dim A,B as String
Dim C,D as Integer
A="字符串A"
B="字符串B"
C=2
D=3
Label1.text="A & B的结果是:"&A & B ‘A & B的结果是:字符串A字符串B
Label2.text="A + B的结果是:"&A + B ‘A + B的结果是:字符串A字符串B
Label3.text="C & D的结果是:"&C & D ‘C & D的结果是:23
Label4.text="C + D的结果是:"&C + D ‘C + D的结果是:5
End Sub
4).比较运算符 =、<>、<、<=、>、>=、Like、Is、TypeOf-Is (可对数值、字符、日期表达式比较)
①.Like ‘比较二个字符串
要求:第一个操作数为String,第二个为String或字符串的标准样式
字符串的标准样式由5个方面组成
A.”?”代表单个字符
B.”*”代表0个或多个字符
C.”#”代表0~9的单个数字
D.[字符列表]代表任何在列表中的字符
E.[!字符列表]代表任何不在列表中的字符
例:
MyCheck=”aBBa” Like “a*a” ‘True
MyCheck=”F” Like “[A-Z]” ‘True
MyCheck=”F” Like “[!A-Z]” ‘False
MyCheck=”a2a” Like “a#a” ‘True
MyCheck=”aM5b” Like “a[L-P]#[!c-3]” ‘True
MyCheck=”CAT123khg” Like “B?T*” ‘False
②.Is ‘比较二个对象(Object)
例:
dim a,b as object
a=b
If a is b then
reponse.write(“一样”)
end if
③TypeOf-Is
Dim x as Button
x=new Button()
if TypeOf x Is Control then
response.write(“this is a control”)
end if
5).逻辑运算符 Not、And、Or、Xor
四.常量
Const strName=”Jim”
Const PI As Decimal=3.14159
五.数组
1.创建数组
如:Dim book() as String={“1”,”2”,”3”}
如:Dim arrDate(2) as string
动态数组:
Dim arrData()
ReDim arrData(2)
六.分支
(1) If/Then/Else
If 条件 then
语句
Elseif条件then
语句
…………………
Else
语句
End if
(2) Select/Case
Select Case 表达式
Case 值
语句
Case 值
语句
………
Case Else
语句
End Select
七. 循环
(1) For/Next
For 变量=初始值 to 终止值 [Step 步长]
语句
Exit For
语句
Next
(2) While/End While
While 条件
语句
Exit While
语句
End While
(3) Do/Loop
方式一:
Do <While/Until> 条件
语句
Exit Do
语句
Loop
方式二:
Do
语句
Loop <While/Until> 条件
(4)For Each
For Each 变量 In 集合
语句
Next
八.过程
声明:
Sub 过程名([参数,参数..])
语句
End Sub
调用:
过程名([参数,参数..])
如:
Sub SayHello(strName as String)
Response.Write “Hello!”&strName
End Sub
SayHello(“Jim”)
九.函数
1.用户自定义函数
注:用户自定义函数必须声明在:<Script Language=”VB” Runat=”server”>与</Script>间
声明:
Function 函数名([参数,参数..])
语句
Exit Function
语句
Return Value
End Function
调用:
函数名([参数,参数..])
通过值传递,如:
Function IntAdd(IntTemp1 as Integer,IntTemp2 as Integer) as Integer
IntTemp1=IntTemp1+ IntTemp2
Return IntTemp1
End Function
IntNumber1=5
IntNumber2=10
Response.Write IntNumber1&”与”IntNumber2&”的和是:”&IntAdd(IntNumber1, IntNumber2)
‘运行后:IntNumber1=5 IntNumber2=10 IntTemp1=15 IntTemp2=10
通过引用传递参数,如:
Function IntAdd(ByRefIntTemp1 as Integer, ByVal IntTemp2 as Integer) as Integer
IntTemp1=IntTemp1+ IntTemp2
Return IntTemp1
End Function
IntNumber1=5
IntNumber2=10
Response.Write IntNumber1&”与”IntNumber2&”的和是:”&IntAdd(IntNumber1, IntNumber2)
‘运行后:IntNumber1=15 IntNumber2=10 IntTemp1=15 IntTemp2=10
2.系统函数
1).数学函数
Abs(x) 返回X的绝对值
Acos(x)
Asin(x)
Atan(x)
Ceiling(x) 返回大于等于X的最小整数
Cos(x)
Sin(x)
Fix(x) 返回一个数值的整数部分
Floor(x) 返回小于等于X的最大整数
Exp(x) 返回X的指数值
Log(x) 返回X的自然对数
Max(x,y) 返回X和Y的最大值
Min(x,y) 返回X和Y的最小值
Pow(x,y) 返回X的Y次幂
Sqrt(x) 返回X的平方根值
Round(x) 返回最接近X的整数值
如:System.Math.Abs(x) ‘返回x的绝对值
FormatNumber(mynumber,num) 返回mynumber的具有num位小数的值
N*Rnd() 随机抽取0-(N-1)间的任意数值(小数)
如:dim mynumber=4*Rnd()
2).日期时间函数
Day(ByVal DateValue As DateTime) 返回1-31来表示某一天的数
Month(ByVal DateValue As DateTime) 返回1-12来表示某一月的数
Weekday(ByVal DateValue As DateTime) 返回1-7表示星期数,默认情况下星期日为第一天
Year(ByVal DateValue As DateTime) 返回1-9999表示年数
Hour(ByVal DateValue As DateTime) 返回0-23表示小时数
Minute(ByVal DateValue As DateTime) 返回0-59表示分钟数
Second(ByVal DateValue As DateTime) 返回0-59表示秒数
FormatDateTime(myDateTime,type) 按type参数类型返回日期时间的格式
Type值 输出格式
0 默认值,一般输出
1 只输出完整的日期
2 只输出简化的日期
3 只输出完整的时间
4 只输出简化的时间
DateSerial(myyear,mymonth,myday) 对日期进行运算,并返回
如计算本月最后一天:
Lastday=DateSerial(year(now),month(now)+1,1-1)
返回:2005-7-31 0:00:00
DateDiff(type,date1,date2) 按type参数返回date1与date2的间隔
Type值 时间单位
d 天
y 天
h 小时
n 分钟
m 月
q 季度
s 秒
w 周
ww 日历周
yyyy 年
例:
<%
dim mynow as datetime=now()
dim myday=day(mynow)
response.write("<br>"+"今:")
response.write(mynow)
response.write("<br>"+"年:")
response.write(year(mynow))
response.write("<br>"+"月:")
response.write(month(mynow))
response.write("<br>"+"日:")
response.write(day(mynow))
response.write("<br>"+"时:")
response.write(hour(mynow))
response.write("<br>"+"分:")
response.write(Minute(mynow))
response.write("<br>"+"秒:")
response.write(second(mynow))
response.write("<br>"+"周:")
response.write(weekday(mynow))
%>
2).字符串函数
Val(mystring) 返回字符串的数值形式
Chr(myinteger) 返回ASCII码对应的字符
Asc(mystring) 返回字符串的ASCII码值
Str(Object) 将Number转换为字符串
Len(mystring)
Trim(mystring) 删除mystring前后的空格,包括全角和半角的空格。而字符串间的空格不会被删除。
Ltrim(mystring)
Rtrim(mystring)
UCase(mystring) 转化为大写
LCase(mystring) 转化为小写
Replace(mystring,str1,str2) 将mystring中的str1字符串替换为str2
StrComp(str1,str2,type) 比较str1与str2的大小,大于返回1,小于返回-1,相等返回0。
type为0(默认)则区分大小写,为1则不区分大小写。B>A、b>a、a>Z
SubString
如
3).显式类型转换
CStr()
CInt()
CShort()
CObj()
CLng()
CDec()
CChar()
CDate()
CBool()
CByte()
CDbl()
CSng()
Ctype()