W PHP instrukcja break służy do przerwania wykonywania pętli. Kluczowe jest to, że gdy użyjemy jej bez dodatkowego parametru, przerywa ona tylko tę pętlę, w której aktualnie się znajduje, czyli w przypadku pętli zagnieżdżonych — pętlę wewnętrzną.
Jeżeli więc warunek w kodzie powoduje wykonanie break w iteracji opisanej jako (2, 2), to oznacza, że w tym momencie kończy się dalsze zwiększanie zmiennej sterującej pętli wewnętrznej (np. $j). Program wychodzi z pętli wewnętrznej i wraca do pętli zewnętrznej, która przechodzi do kolejnej iteracji (np. zwiększa $i do 3), o ile nie ma innych instrukcji kończących cały skrypt.
Dlaczego pozostałe odpowiedzi są niepoprawne?
- "Iteracja (2, 2) zostanie przerwana i nastąpi po niej iteracja (2, 3)" — to sugeruje działanie podobne do continue (pominięcie bieżącego kroku i przejście do następnego w tej samej pętli). break nie przechodzi do kolejnej wartości $j, tylko kończy pętlę wewnętrzną.
- "Wewnętrzna pętla dokończy działanie dla $j = 3, a następnie program zostanie przerwany" — break nie "dokańcza" pętli; przerywa ją natychmiast. Dodatkowo przerwanie całego programu wymagałoby np. zakończenia skryptu (inne konstrukcje niż samo break).
- "Działanie obu pętli zostanie zakończone po iteracji (2, 2)" — to byłoby prawdziwe dopiero przy przerwaniu dwóch poziomów zagnieżdżenia (np. poprzez podanie poziomu przerwania), a nie przy zwykłym break działającym na jedną pętlę.
Wskazówka egzaminacyjna: gdy widzisz pętle zagnieżdżone, zawsze ustal, w której pętli znajduje się break. Domyślnie wpływa on tylko na ten jeden, najbliższy poziom zagnieżdżenia.