Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá a todos

Estava eu escrevendo um programa simples quando me perguntei: como exatamente funciona o break; ?

O meu código é algo como:


for (i = 0; i < 10; i++) {
for (s = 0; s <= i; s++) {
if (s == 7) break;
}
}
[/CODE]

A pergunta é: esse break; vai parar só o for de dentro? Ou vai parar os dois for?

Agradeço a quem puder ajudar.

Link para o post
Compartilhar em outros sites
  • Respostas 7
  • Criado
  • Última resposta

Top Postadores Neste Tópico

Top Postadores Neste Tópico

Posts Populares

break dentro de for é meio "deselegante" usa um while com a condição de parada igual ao if que aciona o break for (int i = 0 ; i < 10; i++){ int s = 0; while ((s < =i) &&

Esse código que você usou como exemplo nem compila !!!

Tenta esse (desculpe a falta de indentação):

int main()

{

printf("!!!Hello World!!!");

for(int i = 0; i < 10; i++)

{

for(int j = 0; j < 10; j++)

{

if (j == 7)

{

printf("Sai no segundo loop!\n");

break;

}

}

}

printf("Sai no final!\n");

return 0;

}

Resultado na console (o break sai do segundo for) :

!!!Hello World!!!

Sai no segundo loop!

Sai no segundo loop!

Sai no segundo loop!

Sai no segundo loop!

Sai no segundo loop!

Sai no segundo loop!

Sai no segundo loop!

Sai no segundo loop!

Sai no segundo loop!

Sai no segundo loop!

Sai no final!

Editado por Willy
Link para o post
Compartilhar em outros sites

Esse código que você usou como exemplo nem compila !!!

Tenta esse (desculpe a falta de indentação):

int main()

{

printf("!!!Hello World!!!");

for(int i = 0; i < 10; i++)

{

for(int j = 0; j < 10; j++)

{

if (j == 7)

{

printf("Sai no segundo loop!\n");

break;

}

}

}

printf("Sai no final!\n");

return 0;

}

Resultado na console (o break sai do segundo for) :

!!!Hello World!!!

Sai no segundo loop!

Sai no segundo loop!

Sai no segundo loop!

Sai no segundo loop!

Sai no segundo loop!

Sai no segundo loop!

Sai no segundo loop!

Sai no segundo loop!

Sai no segundo loop!

Sai no segundo loop!

Sai no final!

Obrigado pela resposta!

Eu sei que o código não compila, claro, ele nem está adaptado a nenhuma linguagem específica. Foi só um exemplo em pseudo-código do que eu queria fazer, para ilustrar minha pergunta.

Link para o post
Compartilhar em outros sites

O break funciona para a estrutura de loops mais próxima do break. Sempre assim. No seu exemplo, a estrutura mais próxima é a do segundo laço FOR (o da variável "s").

Se depois do fechamento desse laço FOR você colocasse mais um break, ele valeria para o primeiro for.

A lógica é essa.

Só lembrando que o break é utilizado em outras situações também, que não loops. Em Switches, que são um tipo de estrutura condicional.

Não se esqueça que objective-C é uma derivação do C. Dê uma olhada em referencias de C que todas estas duvidas de semântica da linguagem são discutidas lá.

Abraço e bons estudos!

Link para o post
Compartilhar em outros sites
  • 3 semanas depois...

Participe do debate

Você pode postar agora e se registrar depois. Se você tem uma conta, entre agora para postar com ela.

Visitante
Responder este tópico…

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Limpar editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.




  • Estatísticas do Fórum

    • Total de Tópicos
      50.640
    • Total de Posts
      427.020
×
×
  • Criar Novo...