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 (+ значения [i-1]) и заявления молитвы (i-1), он печатает от 0 до 9 в порядке возрастания.Описание использования рекурсии
Может кто-нибудь объяснить мне, почему это происходит?
Я просто не могу понять. Источник-Java-2, полная ссылка, 5th Edition, стр. 171
Пожалуйста, используйте последовательный и логический отступ для кодовых блоков. Это особенно важно для понимания цикла или рекурсивного кода. –
Спасибо. Я буду помнить это о будущем. Я новичок, я только начал, поэтому, пожалуйста, не возражайте. –
* «так что пожалуйста, не возражайте» * Это актуально для проблемы, ** вы ** должны учитывать это (как в «исправить»). Как бы то ни было, я только что закончил его редактирование. –