Cómo crear bucles sin fin en la programación c

Cuidado con el bucle sin fin! Cuando un programa C entra en un bucle sin fin, tampoco arroja salida de una y otra sin fin ni se sienta allí apretado y no hace nada. Bueno, que está haciendo lo que pedimos es que hacer, que es para sentarse y girar para siempre.

A veces, esta configuración se hace a propósito, pero sobre todo sucede por error del programador. Y con la forma en que los lazos se establecen en C, es fácil involuntariamente bucle indefinidamente.

Una forma común de hacer un bucle sin fin ilustra un bucle sin fin común, que es un error de programación, no es un error de sintaxis.

Una forma común de Poné un bucle sin fin

#include int main () {int x-for (x = 0-x = 10 x = x + 1) {puts ("¿Qué estás lookin?") -} return (0) -}

El problema con el código de una forma común para hacer un bucle sin fin es que la condición de salida de la declaración para siempre es así: x = 10. Leer de nuevo si no se detecta a la primera vez, o simplemente Hacer ejercicio 9-18.

Ejercicio 1: Escriba el código fuente de una forma común para hacer un bucle sin fin. Guarde, construir y ejecutar.

El compilador puede advertir sobre la condición TRUE constante en la sentencia for. Código :: Blocks debería hacer eso, y ningún otro compilador, si ratcheted hasta su comprobación de errores. De lo contrario, el programa compila y se ejecuta - infinitamente.

  • Para salir de un bucle sin fin, pulse Ctrl + C en el teclado. Este truco sólo funciona para los programas de la consola, y no siempre funciona. Si no lo hace, tendrá que matar el proceso fuera de control.

  • Bucles sin fin también se conocen como bucles infinitos.

Cómo bucle sin fin, pero a propósito

De vez en cuando, un programa necesita un bucle sin fin. Por ejemplo, un microcontrolador puede cargar un programa que se ejecuta mientras el dispositivo está encendido. Al configurar un bucle tal propósito en C, uno de los dos estados se utiliza:

para(--)

Leer esta declaración como " para siempre ". Con artículos en los paréntesis, pero aún con los dos puntos y comas requeridos, el bucle for repite eternamente - incluso después de las ranas críen pelo. Aquí está el bucle while equivalente:

while (1)

El valor entre paréntesis no necesariamente tiene que ser 1- cualquier obra de valor Verdadero o no cero. Cuando el bucle es interminable a propósito, sin embargo, la mayoría de los programadores de establecer el valor en 1, simplemente a la libre documento que ellos saben lo que pasa.

Cómo salir de un bucle

Cualquier bucle puede terminarse al instante - incluyendo bucles sin fin - mediante el uso de una sentencia break dentro de grupo de repetición del bucle de declaraciones. Cuando se encuentra descanso, looping paradas y la ejecución del programa recoge con la siguiente declaración después de corchete final del bucle. Get Me Outta Here! demuestra el proceso.

Sácame de aquí!

#include int main () {int count-count = 0-while (1) {printf ("% d", cuenta) -count = count + 1-si (cuenta> 50) desglose} putchar (' n ') -Retorno (0) -}

El bucle while en la línea 8 está configurado para continuar para siempre, pero el caso de prueba en línea 12 puede detenerlo: Cuando el valor de recuento es mayor que 50, la sentencia break (consulte la línea 13) se ejecuta y las paradas de bucle.

Ejercicio 2: Construir y ejecutar un nuevo proyecto con el código fuente de Get Me Outta Here!

Ejercicio 3: Vuelva a escribir el código fuente de Get Me Outta Here! de manera que una interminable bucle for se utiliza en lugar de un interminable bucle while.

No es necesario para construir un bucle sin fin de utilizar la sentencia break. Puede romper cualquier lazo. Cuando lo haga, la ejecución continúa con la primera declaración después de corchete final del bucle.

¿Cómo se puede arruinar un lazo con C

Hay dos formas comunes a desordenar un bucle. Estos focos de conflicto surgen para los principiantes y profesionales por igual. La única manera de evitar estas manchas es mantener un buen ojo para que pueda detectar 'em rápida.

La primera goof-up está especificando una condición que nunca puede ser Met por ejemplo:

para (x = 1-x == 10-x = x + 1)

En la línea anterior, la condición de salida es falsa antes de que el bucle de gira una vez, por lo que el bucle nunca se ejecuta. Este error es casi tan insidiosa como el uso de un operador de asignación (un solo signo igual) en lugar de la " es igual a " operador (como se acaba de muestra).

Otro error común es colocar mal el punto y coma, como en

for (x = 1-xlt; 14-x = x + 1) - {puts (" una cirugía de hombro Dolor ") -}

Debido a que la primera línea, la sentencia for, termina en un punto y coma, el compilador cree que la línea está todo el bucle. El código vacío repite 13 veces, que es lo que dicta la sentencia for. La declaración puts () A continuación, se ejecuta una vez.

Esos puntos y comas sin escrúpulos puede ser frustrante!

El problema es peor con bucles while porque la estructura do-while requiere un punto y coma después de la final, mientras comunicado. De hecho, olvidando que coma en particular también es una fuente de dolor. Para un lazo tradicional, mientras que, usted no hace esto:

while (xlt; 14) - {puts (" una cirugía de hombro Dolor ") -}

Lo seriamente estúpida sobre estos errores coma es que el compilador no cogerlos. Se cree que su intención es tener un bucle sin declaraciones. Tal cosa es posible.

LA PARA BUCLE SIN CUERPO

main () int #include {int x-for (x = 0-xlt; 10 x = x + 1, printf ("% d n", x)) - retorno (0) -}

En el ejemplo mostrado en A Fo Loop sin cuerpo, el punto y coma se coloca en la línea después de la sentencia for (consulte la línea 8 en A Fo Loop sin cuerpo). Eso demuestra la intención deliberada.

Se puede ver que dos elementos se colocan en el paréntesis de la declaración, ambos separados por una coma. Eso es perfectamente legal, y funciona, aunque no es muy legible.

Ejercicio 4: Escriba el código fuente de la A Fo Loop sin cuerpo en su editor. Genere y ejecute.

Aunque usted puede cargar elementos en una de paréntesis de los estados, es raro y, definitivamente, no se recomienda, por el amor de legibilidad.




» » » » Cómo crear bucles sin fin en la programación c