Does the break statement break out of loops or onl

2019-01-24 05:56发布

问题:

In the following code, does the break statement break out of the if statement only or out of the for loop too?

I need it to break out of the loop too.

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

回答1:

That would break out of the for loop. In fact break only makes sense when talking about loops, since they break from the loop entirely, while continue only goes to the next iteration.



回答2:

An unlabelled break only breaks out of the enclosing switch, for, while or do-while construct. It does not take if statements into account.

See http://download.oracle.com/javase/tutorial/java/nutsandbolts/branch.html for more details.



回答3:

It also goes out of the loop.

You can also use labeled breaks that can break out of outer loops (and arbitrary code blocks).

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

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


回答4:

It breaks the loop, but why not explicitly put the condition in the for itself? It would be more readable and you would not have to write the if statement at all

(if i==temp then temp = i is totally pointless)



回答5:

It will break out of the loop always.



回答6:

Break never refers to if/else statements. It only refers to loops (if/while) and switch statements.



回答7:

break is to break out of any loop.



回答8:

Generally break statement breaks out of loops (for, while, and do...while) and switch statements.

In Java there are 2 variant of break.

1. Labeled break

It break outs of the outer loop where you put the lable.

breakThis: for(...){
   for(...){
      ... 
      break breakThis;  // breaks the outer for loop
   }
}

2. Unlabeled break

It is the statement you used in your question.

It breaks the loop in which it is written. Generally inner loop.



标签: java break