Você está na página 1de 53

Adaptado de

cba
(end if ou End If)
, é preciso
usar o break para explicitar a saída
Cada segmento selecionável deve terminar com
uma sentença de desvio incondicional explícita:

- um break, que transfere o controle para fora da


construção switch, ou

- um goto, que pode transferir o controle para


um dos segmentos selecionáveis.
if (){
} else if() {

Traduzindo pra Ruby:

case
when count < 10 then bag1 = True
when count < 100 then bag2 = True
when count < 1000 then bag3 = True
end
• É possível desviar para o corpo de um laço for

• Esses laços podem ser muito mais complexos e menos confiáveis


do que os laços de contagem de Fortran e Ada.
• É legal tanto em C quanto em C++ desviar para os corpos dos laços
while e do.
--> break
//pula as sentenças e retorna
//ao topo do laço

//encerra o laço em questão


(para fora do laço externo)
• Perl, JavaScript, PHP, Java e C# possuem tais sentenças
/*Suponha que os nós de uma árvore binária estão para ser
processados. Se o nó raiz é apontado por uma variável chamada root, e
se traverse é uma função que modifica seu parâmetro para apontar
para o próximo elemento de uma árvore na ordem desejada, o código
acima é válido*/
• Seu uso pode ser perigoso, comprometer a legibilidade, a confiabilidade e
os custos de manutenção
// Todas as expressões booleanas são avaliadas em cada iteração.
// Se mais de uma for verdadeira, uma das sentenças associadas é não
deterministicamente (talvez aleatoriamente) escolhida para execução, após o qual
as expressões são avaliadas novamente.

//Quando todas as expressões são simultaneamente avaliadas como falsas, o laço


termina.

Você também pode gostar