VBAでForループをj回実行するときに、For文内でjの値を変更しても、ループ回数に反映されません。
test
Sub ボタン1_Click()
Dim i As Integer
Dim j As Integer
j = 10
For i = 0 To j-1 Step 1
j = 20
Next i
Call MsgBox(i, vbOKOnly)
End Sub
VBAの結果
10
上の例では、Forループ内でjを10から20に変更しても、Forループは10回しか実行しません。
なお、Cの場合、for文内でjの値を変更すると、ループ回数に反映されます。
test.c
#include <stdio.h>
void main(void){
int i;
int j=10;
for(i=0;i<j;i++)
{
j=20;
}
printf("%d\n",i);
}
test.cの結果(gcc)
20
上の例では、forループ内でjを10から20に変更すると、forループは20回実行されます。
Javaは、Cと同様です。
Sample.java
class Sample
{
public static void main(String[] args)
{
int i,j=10;
for(i=0;i<j;i++)
{
j=20;
}
System.out.println(i);
}
}
Sample.javaの結果(javac)
20