【问题标题】:Giving name to a loop为循环命名
【发布时间】:2011-03-29 21:08:52
【问题描述】:

在此论坛中浏览问题和答案时,我发现一段代码是为循环命名的,以便将它们用于中断。喜欢

nameofloop:
    for(){
        for(){
             if(){ break nameofloop;}
        }
    }

我是编程新手,以前没见过。我的问题是命名循环还有哪些其他用途?

【问题讨论】:

    标签: java loops


    【解决方案1】:

    这不是一个带标签的循环,它只是一个您放置在任何地方的标签,然后您可以根据您的条件“中断”或“继续”。您还可以在带有 for 循环的嵌套 if-else 中使用,以中断几个用 if-else 装饰的循环,因此您可以避免设置大量标志并在 if-else 中测试它们以便在此嵌套中继续或不等级。

    不鼓励使用它,因为它类似于 goto 并导致意大利面条代码。

    我个人只使用过一次,前段时间,为了用 if-else 打破另外两个 for 循环中的一个 for 循环并在外部循环中继续,因为循环中的 break 打破了这个循环,但你继续外循环,而不是我的情况的最外循环。

    【讨论】:

    • 你不能把它放在任何地方,只能放在语句之前(它只对有其他嵌套语句的语句有用)。 (而continue label; 只有在它实际上是一个被标记的循环时才有可能。)
    • 是的,我试图说明用法。
    【解决方案2】:

    你也可以说:

    continue nameofloop;
    

    ...跳转到指定循环的开始。我认为 Java 中的标签没有其他用例。

    【讨论】:

      【解决方案3】:

      它被称为标记中断,它是分支语句的一种形式。您可以在Official Documention 中查看所有示例。

      【讨论】:

        【解决方案4】:

        官方上,我认为这被称为“标记中断”。它对于打破嵌套循环很有用,例如:

        found:
            for (int i = 0; i < 100; i++)
                for (int j = 0; j < 100; i++)
                    if ( /* Some condition is met */)
                        break found;
        

        我认为它对其他任何事情都没有用。

        【讨论】:

          【解决方案5】:

          我认为这是唯一使用它的情况。而且它不是常用的东西,因为更改标志的值以提前结束循环通常更具可读性。

          【讨论】:

            【解决方案6】:
            1. 创建一个大小为 10 的数组 (int)。

            2. 让用户赋值-(使用for循环)。

            3. 求存储在数组中的值的总和和平均值 - (使用 for- 循环)。

            【讨论】:

            • 这个问题的答案如何?
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-12-14
            • 2012-11-07
            • 2016-12-21
            • 2011-12-04
            • 2018-04-22
            相关资源
            最近更新 更多