当前位置: 首页 > 知识库问答 >
问题:

如何从响应中断(环路/开关)的内部结构中断外部环路

公冶子琪
2023-03-14

如何从响应Swift中的break语句的嵌套结构中断开外部循环

例如:

while someCondition {
    if someOtherCondition {
        switch (someValue) {
            case 0:     // do something
            case 1:     // exit loop
            case 2...5: // do something else
            default:    break
        }
    } else {
        someCondition = false
    }
}

中断只会让我离开开关,在Swift中,它必须被用作空的情况是不允许的。我如何从开关中完全退出循环?

共有2个答案

萧英光
2023-03-14

将循环标记为外循环,并在需要时用户打破标签:即在我们的情况下打破外循环。

outerLoop: for indexValue in 0..<arr.count-1 {
            if arr[indexValue] > arr[indexValue+1] {
                break outerLoop
            } 
        } 
万志专
2023-03-14

Swift允许标记语句。使用带标签的语句,您可以指定要从哪个控制结构中断,而不管循环嵌套的深度有多深(尽管从可读性的角度来看,嵌套越少越好)。这也适用于继续

例:

outerLoop: while someCondition {
    if someOtherCondition {
        switch (someValue) {
            case 0:     // do something
            case 1:     break outerLoop // exit loop
            case 2...5: // do something else
            default:    break
        }
    } else {
        someCondition = false
    }
}
 类似资料:
  • 问题内容: 如何在响应Swift中的语句的嵌套结构中打破外部循环? 例如: 将只会让我离开的,而在斯威夫特,它具有为空的情况下不得使用。如何完全从中退出循环? 问题答案: Swift允许带标签的语句。使用带标签的语句,无论嵌套循环的深度如何,您都可以指定要从哪个控制结构开始(尽管从可读性的角度来看,通常嵌套越少越好)。这也适用于。 例:

  • 问题内容: 我希望打破PHP中的外部for / foreach循环。 可以在ActionScript中完成,如下所示: PHP等效项是什么? 问题答案: 对于2个嵌套循环: http://php.net/manual/en/control- structures.break.php

  • 问题内容: 在以下python代码中: 我得到: 为什么? 问题答案: 因为break不能用于中断if-它只能中断循环。这就是指定Python(和大多数其他语言)运行的方式。 你想做什么?也许您应该使用还是代替?

  • 问题内容: 问题 我正在通过ExecutorService运行某些外部方法的多次调用。我希望能够中断这些方法,但是不幸的是,它们不能自行检查中断标志。有什么办法可以强制从这些方法引发异常? 我知道从任意位置抛出异常是潜在的危险,在我的具体情况下,我愿意抓住这次机会并准备处理后果。 细节 “外部方法”是指某些来自外部库的方法,并且我无法修改其代码(可以,但是,每当发布新版本时,这都会成为维护的噩梦)

  • 问题内容: 我有四个foreach循环,这些循环遍历集合并根据条件进行操作。 这是我现在正在编写的代码: 主要对象(代码中的对象)来自第三方提供程序SDK,因此我无法在该部分上进行任何更改。我想问一下Stack Overflow社区是否有更好的方法来打破所有四个foreach循环。或者,如果还有其他方法可以重构此代码,使其更具可读性和可维护性。 问题答案: 在最外面的循环上使用标签,当您想跳出所有

  • 大多数新的android设备都有一个内部sdcard和一个外部sdcard。我想做一个文件资源管理器应用程序,但我不能找到如何获得路径使用在我的应用程序,因为 在大多数设备中只返回,但另一个外部sdcard有另一个路径,如。感谢任何帮助。