# Break and for-loops

Just a quick question. I am new to using “break” and I am making a program that checks an integer grid if the number 1 is in an entry. Obviously I don’t want to check the rest of the grid if I have found an entry that is equal to 1. Therefore, I wanted to use “break” but should I use break twice in the inner for-loop to exit the double for-loop?
My overall program is a little more complicated than that but you should get the idea by looking at the code below:

``````for(int i=0; i< minnumberrow; i++){ // does something for each line in the file
for(int j=0; j< minnumbercol; j++){ // do something for each collum of each line
if(int(lines[i].charAt(j))==49){ // if it is a 0 or a 1 (49 seems to be 1 in char)
taken=true;
break;
}
}
}
``````

Yes, `break` will only break out of the inner-most loop.

A cleaner alternative might be to test against `taken` in your loop conditions (also, you don’t need to convert your `charAt()` to an `int`, just compare it to `'1'`):

``````taken = false;
for(int i=0; i< minnumberrow && !taken; i++){ // does something for each line in the file
for(int j=0; j< minnumbercol && !taken; j++){ // do something for each column of each line
if(lines[i].charAt(j) == '1') { // if it is a 0 or a 1
taken=true;
}
}
}
``````

Hi

You can define a `label:` right before the outer loop and issue a `break` using that label name:

``````boolean taken = false;

taken:
for (int i = 0; i < 10; ++i)  for (int j = 0; j < 20; ++j)
if (i == 5 && j == 15) {
println(j, i);
taken = true;
break taken;
}

println(taken);
exit();
``````
1 Like

When you are in a function of its own, return() command is your friend

2 Likes