为什么大多数语言不支持 for/while-else 子句? [已关闭]

问题描述 投票:0回答:1

什么是 for/while-else 子句的解释:https://www.w3schools.com/python/gloss_python_for_else.asp

我认为有时这种结构很有用,就像这个伪代码一样,它确保

doWork
始终执行一次:

for (var item in collection) {
    if (someCondition(item)) {
        doWork(item)
        break
    }
}
else {
    doWork(defaultItem)
}

如果没有 for-else,也许我将不得不使用标志变量、goto 或其他东西。这些并不优雅。 For-else 子句似乎也不难实现。现代编程语言通常带有大量语法糖,但它们从不包含 for-else 子句。为什么?

for-loop if-statement programming-languages language-features
1个回答
0
投票

for/while-else 结构有时可以减少对标志或附加逻辑的需求,但它也会引入歧义并降低代码清晰度。 此外,引入 for/while-else 结构会增加语言的语法复杂性。

一些替代方案可以是:

  • 标记变量方法
  • 循环重构(将条件检查与循环体分离)
  • 将循环逻辑封装在函数中,并使用 return 语句来处理循环后的操作。
  • 异常处理(在某些情况下)。
© www.soinside.com 2019 - 2024. All rights reserved.