Рекурсия. Как сохранить переменную в цикле for от изменения во время рекурсии?

Я бы предложил вам использовать мой метод для получения идентификатора ресурса. Это намного эффективнее, чем метод getIdentidier (), который медленный.

Вот код:

/**
 * @author Lonkly
 * @param variableName - name of drawable, e.g R.drawable.<b>image</b>
 * @param с - class of resource, e.g R.drawable.class or R.raw.class
 * @return integer id of resource
 */
public static int getResId(String variableName, Class<?> с) {

    Field field = null;
    int resId = 0;
    try {
        field = с.getField(variableName);
        try {
            resId = field.getInt(null);
        } catch (Exception e) {
            e.printStackTrace();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return resId;

}
1
задан nemes 16 January 2019 в 19:47
поделиться

1 ответ

Это звучит почти так, как если бы вы могли вывести петлю i из function и передать ее внутрь.

Например, если у вас было что-то вроде:

void someOtherFunction()
{
    function();
}
void function(){
  int x = 1;
  for (int i = 0; i < 10; i++){
     //Something happens here...
     for (int j = 0; j < 10; j++){
        //Something happens here...
        array[0][x] += i;
        //Recursion
        function();
     }
  }
}

Вы могли бы изменить его на:

void someOtherFunction()
{
    for (int i=0; i<10; ++i)
        function(i);
}
void function(int i){
  int x = 1;
 //Something happens here...
 for (int j = 0; j < 10; j++){
    //Something happens here...
    array[0][x] += i; 
    //Recursion
    function(i);
  }
}

, возможно, с более лучшим, более описательным именем для i в этом случае .

0
ответ дан Phil M 16 January 2019 в 19:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: