class RecTest
{
int values[];
RecTest(int i)
{
values=new int[i];
}
void pray(int i)
{
if (i==0) return;
else
{
System.out.println(+values[i-1]);
pray(i-1);
}
}
}
class aka
{
public static void main(String h[])
{
RecTest ob=new RecTest(10);
int i;
for(i=0;i<10;i++)
ob.values[i]=i;
ob.pray(10);
}
}
このプログラムは正常に動作し、降順で 9,8,7,6,5,4,3,2,1,0 を出力します。しかし、System.out.println(+values[i-1]) と Pray(i-1) ステートメントを入れ替えると、0 から 9 が昇順で出力されます。
誰かがなぜそれが起こっているのか説明できますか?
私はそれを理解することができません。Source-Java-2、完全なリファレンス、第 5 版、171 ページ