Ниже приведены два фрагмента. Обратите внимание, что ОДНА И ТОЛЬКО разница между программами заключается в том, что один break to return
, а другой return
сразу. Я понимаю, что хорошая практика проектирования имеет одну точку выхода внутри метода. Но я не беспокоюсь о дизайне здесь. Если я заплачу дополнительно за использование break
, сколько дополнительных вычислений/памяти/тактового цикла я заплачу?нарушение или возврат изнутри цикла for
Программа один:
public boolean doThis(String[] A){
boolean indicator = false;
for(int i=0; i<A.length; i++){
if(A[i].equals("Taboo"))
break;
for(int x=0; x<=i; x++)
//some work is done here. to make indicator true or false
}
return indicator;
}
Программа два:
public boolean doThis(String[] A){
boolean indicator = false;
for(int i=0; i<A.length; i++){
if(A[i].equals("Taboo"))
return false;
for(int x=0; x<=i; x++)
//some work is done here. to make indicator true or false
}
return indicator;
}
Я не пытаюсь оптимизировать. Я пытаюсь углубить свое понимание. +1 для вашего объяснения. – kasavbere