Como criar loops infinitos em c programação
Cuidado com o loop infinito! Quando um programa de C introduz um ciclo sem fim, ou ele vomita saída repetidamente sem fim ou ele fica lá apertado e não faz nada. Bem, ele está fazendo o que você pediu para fazer, que é sentar-se e girar para sempre.
Conteúdo
Às vezes, essa configuração é feito de propósito, mas a maioria acontece por causa de erro do programador. E com a forma como as alças são criados em C, é fácil involuntariamente circuito ao infinito.
Uma maneira comum de fazer um loop infinito ilustra um loop infinito comum, que é um erro de programação, não é um erro de sintaxe.
Uma maneira comum de FAZEM um loop infinito
#include int main () {int x-x para (= 0 X = 10 X = x + 1) {(coloca"O que você está olhando?") -} return (0) -}
O problema com o código de uma forma comum para fazer um loop infinito é que condição de saída do por do comunicado é sempre verdadeiro: x = 10. Lê-lo novamente se você não pegá-lo pela primeira vez, ou apenas fazer o exercício 9-18.
Exercício 1: Digite o código-fonte de uma maneira comum de fazer um loop infinito. Salvar, construir e executar.
O compilador pode avisá-lo sobre a condição VERDADEIRA constante na instrução for. Code :: Blocks deveria fazer isso, e qualquer outro compilador, se você aumentaram a sua verificação de erros. Caso contrário, o programa compila e executa - infinitamente.
Para quebrar para fora de um anel sem fim, pressione Ctrl + C no teclado. Este truque só funciona para programas de console, e pode nem sempre funciona. Se isso não acontecer, você precisa matar o processo correr solto.
las sem-fim também são referidos como loops infinitos.
Como repetir indefinidamente, mas de propósito
Ocasionalmente, um programa precisa de um loop infinito. Por exemplo, um microcontrolador pode carregar um programa que é executado enquanto o dispositivo está ligado. Quando você configura um loop de propósito em C, uma das duas afirmações é usado:
para(--)
Leia esta declaração como “para sempre”. Sem itens entre parênteses, mas ainda com os necessários dois ponto e vírgula, o loop repete eternamente - mesmo depois que a vaca tussa. Aqui está o loop while equivalente:
enquanto (1)
O valor entre parênteses não precisa necessariamente ser 1- quaisquer obras valor verdadeiro ou diferentes de zero. Quando o laço é interminável de propósito, no entanto, a maioria dos programadores definir o valor para 1 simplesmente para auto-documento que eles sabem o que está acontecendo.
Como sair de um loop
Qualquer circuito pode ser rescindido imediatamente - incluindo loops infinitos - usando uma instrução break dentro do grupo de repetição do ciclo de declarações. Quando break for encontrada, looping paradas e execução do programa pega com a seguinte declaração após colchete final da loop. Get Me Outta Here! demonstra o processo.
Tira-me daqui!
#include int main () {int contar-count = 0-enquanto (1) {printf ("% D, ", Contam) -count = contagem + 1-if (contagem gt; 50)} break putchar ( `n`) - retorno (0) -}
O loop while na linha 8 está configurado para durar para sempre, mas o caso de teste na linha 12 pode pará-lo: Quando o valor de contagem é maior do que 50, a instrução break (consulte a Linha 13) é executado e pára de loop.
exercício 2: Criar e executar um novo projeto usando o código-fonte do tira-me daqui!
exercício 3: Reescrever o código-fonte do tira-me daqui! de modo que um sem fim para o laço é usado em vez de um sem fim enquanto loop.
Você não precisa construir um loop infinito de usar a instrução break. Você pode sair de qualquer loop. Quando o fizer, a execução continua com a primeira declaração após colchete final da loop.
Como você pode estragar um laço com C
Há duas maneiras comuns para atrapalhar um loop. Esses pontos de conflito surgir para iniciantes e profissionais. A única maneira de evitar essas manchas é manter um olho afiado para que você possa detectar ‘em rápido.
O primeiro goof-up está especificando uma condição que nunca pode ser Met por exemplo:
para (x = 1-x == 10-x = x + 1)
Na linha anterior, a condição de saída é falso antes do loop gira uma vez, para que o loop nunca é executado. Este erro é quase tão insidiosa como a utilização de um operador de atribuição (um único sinal de igual) em vez de “é igual a” operador (como já visto).
Outro erro comum é colocar mal o ponto e vírgula, como em
para (x = 1-xlt; 14-x = x + 1) - {coloca ( “cirurgia do ombro dorido”) -}
Porque a primeira linha, a instrução for, termina em um ponto e vírgula, o compilador acredita que a linha é todo o loop. O código vazia repete 13 vezes, que é o que a instrução for dita. A declaração puts () é então executada uma vez.
Esses semicolons desonestos pode ser frustrante!
O problema é pior com while porque a estrutura do-while requer um ponto e vírgula após a final, enquanto comunicado. Na verdade, esquecendo que ponto e vírgula em particular é também uma fonte de aflição. Para um loop while tradicional, você não fazer isso:
while (XLT; 14) - {puts ( “cirurgia no ombro Sore”) -}
A coisa severamente estúpido sobre esses erros vírgula é que o compilador não pegá-los. Ele acredita que a sua intenção é ter um loop sem declarações. Tal coisa é possível.
UMA PARA LOOP SEM CORPO
#include int main () {int x-para (x = 0-xlt; 10-x = x + 1, printf ("% dn", X)) - retorno (0) -}
No exemplo mostrado em A fou Loop com Nenhum corpo, o ponto e vírgula é colocado na linha após a instrução for (consulte a linha 8 em A fou Loop com Nenhum corpo). Isso mostra intenção deliberada.
Você pode ver que dois itens são colocados no para parênteses da declaração, ambos separados por uma vírgula. Isso é perfeitamente legal, e ele funciona, embora não seja completamente legível.
exercício 4: Digite o código-fonte do A fou Loop com Nenhum corpo em seu editor. Construir e executar.
Embora você pode carregar itens em um de parênteses da declaração, é raro e definitivamente não é recomendado, pelo amor de legibilidade.