Postado 27 de novembro de 201114 anos comment_255770 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. Denunciar
Postado 27 de novembro de 201114 anos comment_255791 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 27 de novembro de 201114 anos por Willy Denunciar
Postado 29 de novembro de 201114 anos Autor comment_256410 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. Denunciar
Postado 2 de dezembro de 201114 anos comment_257315 Sim Gabriel, o "break" sai somente do for que tu utilizaste! Denunciar
Postado 4 de dezembro de 201114 anos comment_257640 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! Denunciar
Postado 11 de dezembro de 201114 anos comment_259563 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) && (s != 7)){ s++; } } Denunciar
Postado 12 de dezembro de 201114 anos comment_259753 Concordo com o javaXviper, for seria mais para um contador/listagem. Nesse caso o while cai como uma luva. Denunciar
Postado 3 de janeiro de 201214 anos comment_266496 javaXviper, no seu código, o contador não será incrementado quando s for igual a 7. Mas não efetua a saída como o break fez no post inicial. A dúvida do Gabriel era quanto à saída do laço, feita por break. Denunciar
Participe do debate
Você pode postar agora e se registrar depois. Se você tem uma conta, entre agora para postar com ela.