【问题标题】:Java - object for loop with condition?Java - 带有条件的循环对象?
【发布时间】:2014-02-16 14:10:39
【问题描述】:

这听起来可能很愚蠢,但我无法通过谷歌搜索找到答案。

当以最简单的形式使用 for 循环时,我可以在 for 语句中添加条件来中断循环。示例:

for(int i=0; i<100 && condition2 && condition3; i++){
    //do stuff
}

当像这样使用对象 for 循环时:

for(String s:string_table){
    //do stuff
}

如何添加条件来打破循环?我说的是在 for 语句中添加条件。我知道我可以在 //do stuff part 中添加条件并从那里中断。

【问题讨论】:

  • 你不能那样做...... foreach 结构是“固定的”。

标签: java iterator conditional-statements break


【解决方案1】:

你不能这样做,你必须把 if 语句放在 for 循环中。

【讨论】:

  • 那太糟糕了。这会让事情变得更容易
  • @user3051067 不会。它只会缩短一行。如果它让你很不高兴,请将 if-break 与左大括号放在同一行,并假装它是 for 语法的一部分。
【解决方案2】:

您不能在“enhanced for”语句的() 部分添加任何其他内容。 JLS § 14.14.2:

增强的 for 语句具有以下形式:

for ( FormalParameter : Expression ) Statement

表达式的类型必须是Iterable或数组类型。

(“FormalParameter”表示变量声明。)

break; 语句是唯一的方法:

for (String s : string_table) {
    if (condition) break;
    // ...
}

【讨论】:

  • +1。现在你能解释一下你为什么选择这个头像吗? :D
  • 我会使用 if (!condition2 || !condition3) ... 而不是 if (condition) 来更好地匹配 OP 的代码。
  • @Boann 这是我对 LOL 的最后一件事。
猜你喜欢
  • 1970-01-01
  • 2022-01-03
  • 2012-12-24
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 2017-07-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多