java使用loop

Home / Article MrLee 2020-5-21 2019

今天无意中查看一段java源码,发现里面有一小段代码语法以前没见过。可能是此方法用的极少。毕竟多层循环效率低。先看代码部分

            charLoop:
                for (i = nextChar; i < nChars; i++) {
                    c = cb[i];
                    if ((c == '\n') || (c == '\r')) {
                        eol = true;
                        break charLoop;
                    }
                }

说明:java中break和continue可以跳出指定循环,break和continue之后不加任何循环名则默认跳出其所在的循环,在其后加指定循环名,则可以跳出该指定循环(指定循环一般为循环嵌套的外循环)。但是sonar给出的建议尽量不要这样使用,说不符合通适规范,并给出了规范的建议。不过有些情况下规范化的写法实现起来判断条件就略显复杂。

例子

        int matrix[][] = {
                {1, 2, 3},
                {4, 5, 6},
                {7, 8, 9}
        };
        outer: for (int row = 0; row < matrix.length; row++) {   // Non-Compliant
            for (int col = 0; col < matrix[row].length; col++) {
                if (col == row) {
                    continue outer;
                }
                System.out.println(matrix[row][col]);                // Prints the elements under the diagonal, i.e. 4, 7 and 8
            }
        }

例子2

    label1:
    for (; ; ) {
        label2:
        for (; ; ) {
            if (condition1) {
                // break outer loop
                break label1;
            }
            if (condition2) {
                // break inner loop
                break label2;
            }
            if (condition3) {
                // break inner loop
                break;
            }
        }
    }


本文链接:https://www.it72.com/12624.htm

推荐阅读
最新回复 (0)
返回