Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2006341
  • 博文数量: 356
  • 博客积分: 8284
  • 博客等级: 中将
  • 技术积分: 4580
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-15 20:25
个人简介

天行健,君子以自强不息

文章分类

全部博文(356)

文章存档

2018年(1)

2016年(4)

2015年(13)

2014年(14)

2013年(2)

2012年(25)

2011年(43)

2010年(65)

2009年(189)

分类:

2010-11-29 19:40:30

提到VB中的冒号,许多人都以为是:“一行可书写几句语句”。这么说是对的,但是有一种情况是不对的,那就是在条件语句中。这也是做一个VB项目升级的时候遇到,这不是程序员的问题,应该是VB语法上的漏洞。如果有理解不对的地方欢迎大家指教。

  看一个例子吧:
  1 If Row1 = -1 Then Row1 = 0: If Row2 = -1 Then Row2 = .MaxRows
  我们一般的理解是执行完第一if语句接着将执行第二个语句,应该是下面的样子:
  If Row1 = -1 Then Row1 = 0
  If Row2 = -1 Then Row2 = .MaxRows
  但是事实上不是这样的,变成下面的形式了。这样的形式并不是我们想要的结果。
  If Row1 = -1 Then
  Row1 = 0
  If Row2 = -1 Then Row2 = .MaxRows
  End If
  我想这个语法对于不熟悉VB的人做代码移植应该是一个非常隐蔽的bug。希望能够对大家有帮助。

Private Sub Form_click()
Dim sum, max, xb, average, a(9) As Integer
Randomize
For i = 0 To 9
    a(i) = Int(90 * Rnd + 10): Print a(i);
'若该语句后面没有分号则输出的是个随机数各自占一行
'分号表示光标定位在上一个显示的字符后
'逗号表示光标定位在下一个答应去的开始位置
'无分号或者冒号,则表示输出后换行
Next i
Print
sum = 0
For i = 0 To 9
    sum = sum + a(i)
Next i
average = sum / 10
Print "各元素累加和="; sum, "平均值="; average
Print
max = a(0)
xb = 0
For i = 0 To 9
    If a(i) > max Then max = a(i): xb = i
'此处冒号的作用就是相当于括号把max = a(i)xb = i连接起来,作为if的一个执行块
Next i
Print "最大值为:"; max, "其元素下标为:"; xb
End Sub

(print后面有分号)
(print后面没有任何符号)

除去if语句外,冒号的作用是表示在一行有多条语句
阅读(11065) | 评论(0) | 转发(0) |
0

上一篇:VB入门笔记(1)

下一篇:VB入门笔记(2)

给主人留下些什么吧!~~