VB循环For的一点启示
Posted daveylin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB循环For的一点启示相关的知识,希望对你有一定的参考价值。
今天在做一道题时,学生在写For上边界时,用了iMin
iMax = i: iMin = n - i + 1 For j = i To __________ If score(j) > score(iMax) Then iMax = j If score(j) < score(iMin) Then iMin = j Next j
一开始我认为是错的,因为iMin随着循环的进行会变化。
但答案却是这个。
为此做了个验证。如下程序,
Private Sub Command1_Click() Dim i As Integer For i = 1 To 3 - i Print i Next i End Sub
思考:该程序循环了几次?一般会认为循环了1次。
一般分析会是这样的:
初值i=1
终值3-i=2
第1次循环,输出1,接着i=i+1=2,终值3-i=3-2=1,
2<1为False。
但实际运行结果是:
思考,从程序结果来分析,终值3-i应该一开始就赋值了,并且作为了常量。
但是3-i=3-1=2,应该循环2次啊。
我们在做一个实验,如下代码:
Private Sub Command1_Click() Dim i As Integer i = 1 For i = 1 To 3 - i Print i Next i End Sub
从运行结果来看,在for循环外面现将i初始化为1后,3-i=3-1=2,
而拿掉i的初始化语句后,就变成循环3次。
原因分析如下:
1、dim i as integer定义了i变量,它的初值即为i=0;
2、for i=1 to 3-i ,在循环开始时,编译器就将循环的初值和终值同时计算好了,计算的时候终值是不会马上用到初值的。
以上是关于VB循环For的一点启示的主要内容,如果未能解决你的问题,请参考以下文章