配列の中身をコンソールに逆順に出力する例です。
左はC++、右はVBAの例です。
#include <iostream>
int main()
{
int aaa[5]{ 1,2,3,4,5 };
for (int i = 4; i > -1; --i)
{
std::cout << aaa[i] << std::endl;
}
return 0;
}
Option Explicit
Sub test()
Dim aaa(4) As Long
Dim i As Long
For i = 0 To 4
aaa(i) = i
Next i
For i = 4 To 0 Step -1
Debug.Print aaa(i)
Next i
End Sub
再起関数を使って逆順に出力する例です。
再起関数は関数の中で自分自身を呼び、変数を持ち越して終了条件まで繰り返して繰り返した結果を溜めて、処理が終わって戻って来たときに一気に出力するイメージです。
慣れないと難しいです。
再起ループが終わるまでメモリを使っていくので重い処理を大量に行うのはよろしくないです。
#include <iostream>
int f(int i)
{
int a[]{ 0,1,2,3,4 };
int n = 0;
if (i == 5)
return 0;
n = i; //再起で持ち越す変数を渡して置く
f(++i);
std::cout << a[n] << std::endl;
return 0;
}
int main()
{
int i = 0;
f(i);
}
Sub f()
Dim i As Long
Call 再起(i)
End Sub
Sub 再起(i As Long)
Dim aaa(5) As Long
Dim j As Long
For j = 0 To 4
aaa(j) = j
Next j
If i = 5 Then
Exit Sub
End If
j = i
i = i + 1
Call 再起(i)
Debug.Print aaa(j)
End Sub
コメント