Добрий володар ні. Іноді існує ймовірність того, що в циклі може статися щось, що задовольняє загальну вимогу, не задовольняючи умови логічного циклу. У такому випадку break
використовується, щоб зупинити вас безглуздо їздити по петлі.
Приклад
String item;
for(int x = 0; x < 10; x++)
{
if(array[x].equals("Item I am looking for"))
{
item = array[x];
break;
}
}
Що має більше сенсу в цьому прикладі. Продовжуйте цикл до 10 кожного разу, навіть після того, як ви його знайшли, або цикл, поки не знайдете предмет і не зупинитесь? Або в реальному вираженні; коли ви знаходите свої ключі, ви продовжуєте шукати?
Змінити у відповідь на коментар
Чому б не встановити x
для 11
розірвати цикл? Це безглуздо. Маємо break
! Якщо ваш код не робить припущення, що x
, безумовно, більше, ніж 10
пізніше (а це, мабуть, не повинно бути), тоді ви просто використовуєте break
.
Редагуйте заради повноти
Безумовно, існують інші способи моделювання break
. Наприклад, додавання додаткової логіки до вашого стану завершення у вашому циклі. Казати, що це або безглуздо, або використання break
не є справедливим. Як зазначалося, цикл while часто може досягти подібної функціональності. Наприклад, слідуючи наведеному вище прикладу ..
while(x < 10 && item == null)
{
if(array[x].equals("Item I am looking for"))
{
item = array[x];
}
x++;
}
Використання break
просто означає, що ви можете досягти цієї функціональності за допомогою for
циклу. Це також означає, що вам не потрібно продовжувати додавати умови в свою логіку завершення, коли ви хочете, щоб цикл поводився інакше. Наприклад.
for(int x = 0; x < 10; x++)
{
if(array[x].equals("Something that will make me want to cancel"))
{
break;
}
else if(array[x].equals("Something else that will make me want to cancel"))
{
break;
}
else if(array[x].equals("This is what I want"))
{
item = array[x];
}
}
Замість того, щоб while loop
із умовою припинення, яка виглядає так:
while(x < 10 && !array[x].equals("Something that will make me want to cancel") &&
!array[x].equals("Something else that will make me want to cancel"))