Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 完成一项功能;返回无效还是中断循环?_Java_Android_Performance - Fatal编程技术网

Java 完成一项功能;返回无效还是中断循环?

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 =

我将向您展示两个示例:

示例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 = 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;
                } 
            }
        } 
    }