Tão agressivo quanto sugerido, break é uma instrução que serve para quebrar alguma coisa. Na verdade, sua semântica não é exatamente uma quebra, então não associe a tradução literal pois está mais ligada com a tradução encerrar.
Você pode dar algum exemplo do dia a dia, Kiko?
Claro. Lembra do $parafuso->apertar()? Quem já montou alguns móveis sabe que, às vezes, um parafuso se perde na entrega. Ou pior: você tem o número exato de parafusos e, por algum motivo, enquanto apertava... O parafuso simplesmente se desmanchou.
Quando esse último caso acontece, você pode até tentar apertar ou verificar se está firme: o problema é que você não tem como averiguar. À princípio, se você programa uma máquina para apertar até quando chegar na fricção considerada "firme", essa situação vai gerar um loop infinito. Você precisa ter uma validação que garanta que toda a função de apertar resulte em sucesso ou falha, onde desmantelar, com toda certeza, precisa ser identificada como uma falha.
E o que acontece quando uma ação repetitiva encontra uma falha? Bem, você precisa encerrar o laço. É para isso que serve o break. É outra coisa da programação que você faz sem perceber... Vê como seu cérebro é incrível?
Outra analogia que posso descrever tem um forte potencial de estar no seu dia-a-dia: escrever mensagem para a pessoa errada. Se você percebeu: break, para de digitar, interrompe o fluxo todo, volta pra pessoa certa e digita.
Se você não percebeu...
(não faça isso em casa)
Enfim, o ponto é que o loop desse exemplo seria o ato de digitar até completar a mensagem. Por algum motivo, você checou com quem estava falando enquanto digitava (mais uma coisa absurda do nosso cérebro) e fez a validação que te força a fazer um break em caso de falha.
Ok, eu comparei com a capacidade de processamento dos humanos e sei que não é tão simples assim, a questão é apenas entender a analogia, ok?!
Ok, Kiko, entendi... Mas como que usa isso?
Primeiramente você precisa saber quais estruturas suportam o uso do break. São elas:
while;do-while;for;foreach;switch(veremos em um artigo próximo).
Agora podemos falar sobre como aplicar, que não é tão complicado assim mas pode ser confuso e o motivo é claro: o break pode ser usado para encerrar múltiplos fluxos encadeados simultaneamente.
QUE
Isso significa que sua sintaxe aceita tanto o uso isolado (break;) quanto informando a quantidade de laços que devem ser encerrados (break <número>;). É pleonasmo usar um comando break 1, que equivale a escrever apenas break.
Encerrando somente um fluxo
É só usar o isolado:
<?php
while (true) {
echo 'Esse comando poderia ser um loop infinito...' . PHP_EOL;
break;
}
echo 'Se não fosse pelo break';
Encerrando mais de um fluxo
Aí é só informar a quantidade de estruturas que deseja encerrar. Lembrando que só encerra as estruturas onde é aceito, ou seja, se você tentar encerrar dois laços onde só existe um, irá receber erro.
<?php
while (true) {
echo 'Esse comando poderia ser um loop infinito...' . PHP_EOL;
while (true) {
echo 'E esse um loop infinito dentro de um loop infinito' . PHP_EOL;
break 2;
}
}
echo 'Se não fosse pelo break';
Fácil, não é mesmo? Acho que gastei mais tempo escrevendo analogias do que ensinando, de fato. Hehehe.
Enfim... Curtiu? Comenta e compartilha! No próximo artigo irei falar sobre uma outra estrutura muito útil para laços repetitivos, o continue. Você faz ideia de pra que serve? Se não, espera um pouco que jaja eu te digo!
Inté!!
About the author
My name is Kaique Garcia, but you can call me Kiko. I'm a developer since 2014, a guitar player since 2008, a World Wide Web explorer since 2000 and a living guy since 1992 (haha). My hobby is to have hobbies (I can tell you more than 20 hobbies I got from my childhood). My pleasure is to solve problems, that's the way I came to the development area. Ok, lemme finish it... I like to meet people, so don't worry about speaking to me!
Comments
Join the discussionNo comments yet. Be the first to comment.
PHP para Iniciantes
Neste mini-curso, irei falar sobre todos os pontos básicos sobre o PHP, de forma que qualquer pessoa que nunca viu a linguagem poderá conhecer o básico do básico sobre ela.