当前位置: 首页 > 面试题库 >

为什么在OOP中使用中断/继续标签(例如Java,C#)是不好的做法?

巫化
2023-03-14
问题内容

有人告诉我,在OOP语言中使用Break and Continue标签不是OOP编程风格。您能否详细说明问题的原因和原因?

窍门在于这个标签词。我的意思是标记为中断/继续。

class BreakWithLabelDemo {
    public static void main(String[] args) {

        int[][] arrayOfInts = {
            { 32, 87, 3, 589 },
            { 12, 1076, 2000, 8 },
            { 622, 127, 77, 955 }
        };
        int searchfor = 12;

        int i;
        int j = 0;
        boolean foundIt = false;

    search:
        for (i = 0; i < arrayOfInts.length; i++) {
            for (j = 0; j < arrayOfInts[i].length;
                 j++) {
                if (arrayOfInts[i][j] == searchfor) {
                    foundIt = true;
                    break search;
                }
            }
        }

        if (foundIt) {
            System.out.println("Found " + searchfor +
                               " at " + i + ", " + j);
        } else {
            System.out.println(searchfor +
                               " not in the array");
        }
    }
}

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html


问题答案:

告诉您的人,这可能意味着break和Continue是分支语句(如goto),这是命令式编程的一种机制。

break / continue仅允许您跳至外部语句,这意味着您无法遍历代码。因此,您留在同一个方法对象中,因此它与OOP不兼容。

无论如何,说中断和继续不是OOP是胡说八道。我们也许可以讨论它们对可读性的影响,仅此而已。



 类似资料:
  • http://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html

  • null 正确的方法是不间断地睡眠。

  • 问题内容: 我已经多次听到在HTML 中使用JavaScript事件(例如)是不正确的做法,因为它不利于语义。我想知道不利之处以及如何解决以下代码? 问题答案: 您可能正在谈论简洁的Javascript,看起来像这样: 中央javascript文件中的逻辑如下所示: 优点是 行为(JavaScript)与表示(HTML)分开 没有语言的混合 您正在使用像jQuery这样的javascript框架,

  • 问题内容: 在1990年代,有一种将Javascript代码直接放入href属性的方式,如下所示: 然后突然我停下来看看。它们全部被替换为: 对于仅用于触发Javascript代码且没有实际目标的链接,为什么鼓励使用该属性而不是该属性? 问题答案: 执行上下文不同,要查看此内容,请尝试以下链接: 通常是在全局上下文中执行,而不是作为元素的方法执行。在大多数情况下,您正在对所操作的元素进行操作或与之

  • 问题内容: 在回答了有关如何使用强制释放Java中的对象(那个家伙正在清除1.5GB的HashMap)的问题后,有人告诉我手动调用是一种不好的做法,但是注释并不完全令人信服。此外,似乎没有人敢于赞成,也没有反对我的答案。 有人告诉我这是一种不好的做法,但是后来我又被告知,垃圾收集器的运行不再系统地停止世界,而且它也可以有效地被JVM用作提示,所以我有点不知所措。 我确实知道,JVM在需要回收内存时

  • 这在本质上不像那样工作吗?使用它甚至是好的实践吗?这让我很不安。