我是靠谱客的博主 帅气台灯,最近开发中收集的这篇文章主要介绍VB基础 VB基础 ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

VB基础

1、VB For循环
基本语法

For counter [ As datatype ] = start To end [ Step step ]  
    [ statements ]  
    [ Continue For ]  
    [ statements ]  
    [ Exit For ]  
    [ statements ]  
Next [ counter ]

举个例子 为打印1-5

for i = 1 To 5
	Print(i)
Next
' res: 1	2	3	4	5

反过来打印

For i = 5 To 1 Step -1
    Print(i)
Next
' res:  5	4	3	2	1

强制退出For循环,请使用Exit For, 相当于c++中的break,对于多重循环,只能退出离它最近的循环,若要跳出最外层循环,需要用到GoTo
2、VB IF选择
基本语法

' Multiline syntax:  
If condition [ Then ]  
    [ statements ]  
[ ElseIf elseifcondition [ Then ]  
    [ elseifstatements ] ]  
[ Else  
    [ elsestatements ] ]  
End If  
  
' Single-line syntax:  
If condition Then [ statements ] [ Else [ elsestatements ] ]  

举个例子 闰年判断

Dim y As Long
y = Year(Now)
If y Mod 400 = 0 Then
    MsgBox Str(y) & "是闰年"
ElseIf y Mod 4 = 0 And y Mod 100 <> 0 Then
    MsgBox Str(y) & "是闰年"
Else
    MsgBox (Str(y)) & "是平年"
End If

3、函数
基本语法

[Private][Public][Static]Function <函数过程名>([形参列表])[As <类型>]
	<语句系列>
	[<函数名> = <表达式>]
[Exit Function]
[<语句系列>]
[<函数名> = <表达式>]
End Function

函数的参数传递分为两种

  1. ByVal:值传递,在内存中重新开辟地址存储。修改时不会影响数值
  2. ByRef: 引用传递,使用的是同一地址存储变量,一旦在函数内部修改了这个数值,引用的数值也会随之引用。

举个例子:判断一个数是否是素数

Function isPrime(ByVal num As Long) As Boolean
Dim tmp As Double
isPrime = True
If num = 1 Then
    isPrime = False
Else
    tmp = Sqr(num)
    For i = 2 To tmp
        If num Mod i = 0 Then
            isPrime = False
            Exit For
        End If
    Next
End If
End Function

4、日期
详细可见博客1,博客2
程序中使用到的

  1. Date,Time,Now函数:读取系统的日期时间
  2. 格式化时间 Format(date, dateformat)
  3. 将字符串转为date CDate(dateStr)
  4. year(T), month(T), day(T), weekday(T)
Dim dt As Date, dateStr As String, datas As String
dates = "2019-04-08"
dateStr = Format(dt, "yyyy-mm-dd hh.mm.ss")   '将时间类型指定格式的字符串
week = Weekday(CDate(dates))  '将字符串转为Date类型,再获取星期几

5、字符串
详细见博客

mid(字符串, idx,len) ByRef 从字符串idx处,取出长度为len的子串
trim(str)  ByVal去掉字符串前后的空格
len(str) ByVal 返回字符串的长度
Join(list[, delimiter]) As String 返回一个字符串,该字符串是通过连接某个数组中的多个子字符串而创建的。list 必需的。包含被连接子字符串的一维数组。delimiter 可选的。在返回字符串中用于分隔子字符串的字符。如果忽略该项,则使用空格(" ")来分隔子字符串。如果delimiter是零长度字符串(""),则列表中的所有项目都连接在一起,中间没有分隔符。
Split(str[, delimiter]) 返回的是一个字符串数组 ,默认分隔符为" "
Dim timeStr As String, timeArr() As String, h As String, m As String, s as String
timeStr = "12:23:34"
'获取时,分,秒
'1、用字符串分隔的方法
timeArr = Split(timeStr, ":")
h = Val(timeArr(0))
m = Val(timeArr(1))
s = Val(timeArr(2))
'2、用mid来截取字符串
h = Val(Mid(timeStr(i), 1, 2)) '获取小时
m = Val(Mid(timeStr(i), 4, 2)) '获取分钟
s = Val(Mid(timeStr(i), 7, 2))  '获取秒

6、数组
VB中的数组可以自已声明下标的起始位置,当数组没有声明成定长的,可以通过redim来调整数组长度,使用preserve保留现有的数据,因为数组的长度可能不从0开始,所以数组只能通过以下方式获取

length = UBound(arr) - LBound(arr) + 1

7、Collection
Collection可以为每一个元素设置一个key,通过key对数组进行访问,这相当于c++中的map
项目中利用Collection建立学生与其导师的对应关系,每一位学生的导师唯一,但每一位导师可能需要指导多位学生,就是一对多的关系,Collection中存储的是Array
代码如下:

 '根据学生与老师的关系生成map
    For i = 2 To relaRows
        If relation(i, 1) <> "" And relation(i, 5) <> "" Then
            Dim tea As String, stu As String
            tea = relation(i, 5)
            stu = relation(i, 1)
            stuCol.Add tea, stu
            If exists(teaCol, tea) = False Then
                Dim arr() As String
                ReDim arr(0)
                arr(0) = stu
                teaCol.Add arr, tea
            Else
                '若已在teaCol中存在,则先删除Item,再添加
                arr = teaCol.Item(tea)
                ReDim Preserve arr(UBound(arr) + 1)
                arr(UBound(arr)) = stu
                teaCol.Remove (tea)
                teaCol.Add arr, tea
            End If
        Else
            myNum = myNum + 1
        End If
    Next

如果直接访问集合中不存在的元素,VB会直接报错,所以在使用元素之前,需判断集合中的元素是否存在。

'判断元素是否在集合
'Collection中的元素为数组 
Function exists(pCol As Collection, pKey As String) As Boolean
On Error Resume Next
    exists = (UBound(pCol(pKey)) >= 0)
End Function
'Collection中的元素为字符串
Function exists1(pCol As Collection, pKey As String) As Boolean
On Error Resume Next
    exists1 = Len(pCol(pKey) >= 0)
End Function

下次再补充吧

最后

以上就是帅气台灯为你收集整理的VB基础 VB基础 的全部内容,希望文章能够帮你解决VB基础 VB基础 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部