2016-08-08 2 views
-1

может кто-нибудь объяснить мне это, если у меня есть метод, который возвращает логическое значение, как этотИспользование функций проблема

public boolean APlusB(int a,b,c){ 
if((a+b)==c){ 
    return true; 
}else { 
    return false; 
} 
} 

, а затем я код что-то вроде этого

ArrayList<Boolean> arrayList = new ArrayList<>(); 
    arrayList.add(APlusB(1,2,3)); 
if(APlusB(1,2,3)){ 
    Log.e(tag,"Success"); 
}else{ 
    Log.e(tag,"Fail"); 
} 

Итак, в этой части I используется функция APlusB 2 раза или эта часть с if не учитывается?

спасибо.

+0

Сначала этот код не компилировался. Вы не передаете какие-либо параметры функции либо времени. –

+0

@ gabe-sechan Простите, забыли про это, я отредактировал мое сообщение, пожалуйста, взгляните. – Steve

+2

Вы называете это дважды. Поскольку вы передаете одни и те же параметры, они должны возвращать одно и то же. Однако компилятор Java может оптимизировать ваш код и сделать только один вызов. –

ответ

0

Да, вы вызываете его дважды. Не имеет значения, сколько раз u передает те же параметры, что и для проверки или получения значения, U вызывает эту функцию.

  1. arrayList.add(APlusB(1,2,3));
  2. if(APlusB(1,2,3)){ .. }
  3. APlusB(1,2,3)
  4. arrayList.add(APlusB(1,2,3));
  5. APlusB(1,2,4) и так далее.

* выше пример я называю APlusB 5 раз.

0

arraList.add (item) этот метод возвращает тип void. Поэтому вы можете проверить, используя размер списка массивов

boolean additem(APlusB) 
{ 
    int count=arrayList.size(); 
    arrayList.add(APlusB) 
    return (arrayList.size()>count?true:false) 
} 
Смежные вопросы