Вот рекурсивный Funtion -Использование оператора декремента Java в рекурсивной функции
private void printVar01(int t){
if(t != 0){
logp.info("o: "+t);
printVar01(t-1);
}
}
же Funtion с небольшим изменением -
private void printVar02(int t){
if(t != 0){
logp.info("o: "+t);
printVar02(t--);
}
}
Если я прохожу в значении interger как 4, printVar01 работ как и ожидалось, где t уменьшается до 0 в последовательных recrsive вызовах, в результате чего программа выходит.
С printVar02, т остается на значение 4.
Почему? Я предполагаю, что это имеет какое-то отношение к присваиванию переменной и/или как значения передаются функциям.
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html –
yup Я должен был прочитать этот документ дважды :). также это - http: // stackoverflow.com/questions/484462/difference-between-i-and-i-in-a-loop –