break语句是断开循环还是仅断开if语句?

时间:2011-09-02 22:50:11

标签: java break

在下面的代码中,break语句是否仅在if语句中或在for循环之外?

我也需要它来摆脱循环。

for (int i = 0; i < 5; i++) {
    if (i == temp)
        // do something
    else {
        temp = i;
        break;
    }
}

9 个答案:

答案 0 :(得分:20)

这会打破for循环。实际上break只在谈论loops时才有意义,因为它们完全与loop分开,而continue只会转到下一个iteration

答案 1 :(得分:15)

未标记的break仅突出封闭的switchforwhiledo-while构造。它不会考虑if个语句。

有关详细信息,请参阅http://download.oracle.com/javase/tutorial/java/nutsandbolts/branch.html

答案 2 :(得分:7)

它也不在循环中。

您还可以使用可以突破外部循环(和任意代码块)的带标签的中断。

looplbl: for(int i=;i<;i++){

    if (i == temp)
        // do something
    else {
        temp = i;
        break looplbl;
    }
}

答案 3 :(得分:4)

它打破了循环,但为什么不明确地将条件放在for?中呢?它更具可读性,你不必在所有

中编写if语句

(如果我= = temp然后temp = i完全没有意义)

答案 4 :(得分:2)

break将打破任何循环。

答案 5 :(得分:2)

它总会突破循环。

答案 6 :(得分:2)

Break永远不会引用if / else语句。它仅指循环(if / while)和switch语句。

答案 7 :(得分:1)

通常App语句会突然出现循环(export default class App extends React.Component { constructor(props) { super(props); //this.handleChange = this.handleChange.bind(this) this.handleClick = this.handleClick.bind(this); this.state = { rows: {} }; } handleClick(rowId) { const { rows } = this.state; this.setState({ rows: { ...rows, [rowId]: true } }); } render() { const { rows } = this.state; return data.map((row, index) => { const isEditable = rows[index]; return ( <Row row={row} handleClick={this.handleClick} rowId={index} isEditable={isEditable} /> ); }); } } breakfor)和while语句。

在Java中,有do...while的两种变体。

1. switch

它打破了你放置标签的外环。

break

2. Labeled break

这是您在问题中使用的陈述。

它打破了写入循环。一般是内循环。

答案 8 :(得分:0)

它将使您脱离for循环。通常, break 语句用于优化程序的运行时间。意味着在满足给定条件时,请使用 break 语句,以便将您带出循环并忽略其余的迭代。