Java 完成一项功能;返回无效还是中断循环?
我将向您展示两个示例: 示例A:Java 完成一项功能;返回无效还是中断循环?,java,android,performance,Java,Android,Performance,我将向您展示两个示例: 示例A: protected void mostrarCms(int idCms) { LinearLayout variableContent = (LinearLayout) this.findViewById(R.id.variableContent); loopDeCms: for (int i=0; i<variableContent.getChildCount();i++){ View fillActual =
protected void mostrarCms(int idCms) {
LinearLayout variableContent = (LinearLayout) this.findViewById(R.id.variableContent);
loopDeCms:
for (int i=0; i<variableContent.getChildCount();i++){
View fillActual = variableContent.getChildAt(i);
if (fillActual instanceof WebView){
WebView wbActual = (WebView) fillActual;
if (wbActual.getContentDescription().toString().equals("cms_id_"+idCms)){
wbActual.setVisibility(View.VISIBLE);
break loopDeCms;
}
}
}
}
受保护的无效mostrarCms(int idCms){
LinearLayout variableContent=(LinearLayout)this.findViewById(R.id.variableContent);
环decm:
for(int i=0;i在这个特定的情况下,这无关紧要。我想这是风格的问题。我会使用break
,因此如果在for循环之后添加新代码,则只有循环将结束,而不是整个方法
考虑一下将扩展此代码并在for
循环后添加一些功能的编码器。如果使用return
语句,编码器将不得不浪费时间来确定该方法是否必须返回,或者出于风格原因,您只是喜欢它而不是break
。如果您使用break
未来的der(可能是您)将更容易在for
循环之后添加逻辑。这就是为什么我更喜欢break
而不是return
就性能而言,它没有任何区别,原因有二:
这里可能没有性能问题,因为这是非常小的问题
即使存在性能问题,编译器也可能知道如何进行优化
在资源方面,这也不重要,因为无论哪种方式,方法的作用域都会结束,并且当资源超出作用域时,允许对其进行垃圾收集。在这种特定情况下,这并不重要。我想这是风格的问题。我会使用break
以防在for循环之后添加新代码,只有循环将结束,而不是整个方法
考虑一下将扩展此代码并在for
循环后添加一些功能的编码器。如果使用return
语句,编码器将不得不浪费时间来确定该方法是否必须返回,或者出于风格原因,您只是喜欢它而不是break
。如果您使用break
未来的der(可能是您)将更容易在for
循环之后添加逻辑。这就是为什么我更喜欢break
而不是return
就性能而言,它没有任何区别,原因有二:
这里可能没有性能问题,因为这是非常小的问题
即使存在性能问题,编译器也可能知道如何进行优化
在资源方面也不重要,因为无论哪种方式,方法的作用域都会结束,并且当资源超出作用域时,允许对其进行垃圾收集。因为该方法在循环之后不做任何其他事情(也不应该这样做),使用return
是更干净的选项。使用break
意味着处理将在循环后继续。因为该方法在循环后不做任何其他事情(也不应该做),使用return
是更干净的选项。使用break
意味着循环结束后处理将继续。如果要退出函数,那么return
是最好的选择
break
只会将您带出即时循环,这样,如果将来的更改意味着您的循环嵌套在另一个循环中,您的控制流就可以中断。始终尽可能多地对代码进行未来验证。如果您想退出函数,那么返回
是最好的选择
break
只会将您带出即时循环,这样,如果将来的更改意味着您的循环嵌套在另一个循环中,您的控制流就可以中断。始终尽可能地对代码进行未来验证。我认为这只是个人恩惠。我个人尽量避免在函数末尾以外的任何地方使用返回语句。如果要向此函数添加代码或扩展函数头中的返回可能会让您非常头痛。我认为这只是个人恩惠。我个人尽量避免在函数末尾以外的任何地方使用返回语句。如果您要向此函数添加代码或扩展函数头中的返回,则这个函数可能会让你非常头疼。1.我从来不会在简单的break
就足够的时候使用标签。2.如果我确定,这是我最不需要做的事情(即使方法得到扩展),然后我使用return。大多数情况下都不是这样。1.当简单的break
就足够时,我从不使用标签。2.如果我确定,这是我最不需要做的事情(即使方法得到扩展),那么我使用return。大多数情况下都不是这样。
protected void mostrarCms(int idCms) {
LinearLayout variableContent = (LinearLayout) productView.this.findViewById(R.id.variableContent);
for (int i=0; i<variableContent.getChildCount();i++){
View fillActual = variableContent.getChildAt(i);
if (fillActual instanceof WebView){
WebView wbActual = (WebView) fillActual;
if (wbActual.getContentDescription().toString().equals("cms_id_"+idCms)){
wbActual.setVisibility(View.VISIBLE);
return;
}
}
}
}