fbpx
Wikipedia

Bucle infinito

Bucle infinito en programación es un error que consiste en realizar un ciclo que se repite de forma indefinida ya que su condición para finalizar nunca se cumple.[1]

Por definición un bucle debe contener condiciones que establezcan cuándo empieza y cuándo acaba, de manera que, mientras las condiciones se cumplan, ejecute una secuencia de código de manera repetitiva. En el caso de ciclo infinito, como la condición de finalización no se alcanza, el bucle sigue ejecutando el segmento de código indefinidamente.


Excepción de error

La programación en automatización y robótica puede basarse en un bucle infinito, como por ejemplo la función void loop() en Arduino, en este caso el bucle infinito deja de ser un error para pasar a ser una virtud, ya que puede reconocerse el estado de un sensor generando un respuesta miles de veces por segundo.

Ejemplos

Lenguaje C

Bucle while

#include <stdio.h> #include <conio.h> int main(){ int x = 0; while(x < 10) { printf("\n¡No acabaré nunca!\n"); } getch(); return 0; } 

Se observa que la sentencia printf("\x¡No acabaré nunca!\n"); siempre se ejecuta porque la condición del bucle while() siempre es cierta, no existe una condición de salida que obligue al bucle a finalizar. Exactamente, no se alcanza la condición de salida. Si en el ejemplo anterior, dentro del bloque de código del bucle while, se encontrase la instrucción

x++; 

El bucle hubiera ejecutado 10 veces y hubiera terminado.

También existe esta posibilidad con el while (true). En C:

#include <stdio.h> #include <conio.h> int main(void) { while(1) { printf("\xadNo acabar\x82 en algún momento!\n"); } getch(); return 0; /* De todas maneras, el programa no llegará nunca hasta aquí */ } 

Bucle for

#include <stdio.h> int main(void) { int cont; for (cont = 0; cont < 5; cont++) { cont = cont%4; printf("%d\n",cont); } return 0; } 

En la sentencia "printf" se muestra en pantalla 0,1,2,3,0,1,2,3,0,.... Y también podemos crear un ciclo infinito con el for de esta forma:

#include <stdio.h> int main(void) { for (;;) printf("Bucle infinito\n"); return 0; } 

Lenguaje C++

Bucle while

#include <iostream> using namespace std; int main(void) { while(true){ cout << "Se repite" << endl; } return 0; } 

Bucle for

#include <iostream> using namespace std; int main(int argc, char *argv[]) { for(int i=0;i==i;i++) { cout << "Se repite" << endl; } return 0; } 

Como siempre la variable i va a ser igual a ella misma, se incrementa e itera infinitas veces.

En el siguiente caso, por cada vez que se incrementa la variable, como es menor a 5 se decrementa dentro del cuerpo del bucle. Luego se vuelve a incrementar y de esa manera infinitas veces.

#include <iostream> using namespace std; int main(int argc, char *argv[]) { int h=0; for(int i=0;i<5;i++){ i--; h++; cout << "Se repitio: " << h << " Veces." << endl; } return 0; } 

Lenguaje Visual Basic

Bucle while

 Public Function suma2(a, b) As Double suma2 = a + b While (suma2 >= 10) suma2 = suma2 + 1 Wend End Function 

Siempre que la suma de a y b sea superior o igual a 10.

Bucle do loop

Dim Suma Suma = 0 Do Suma = Suma + 1 Loop 

La variable "Suma" se sumará infinitamente 1 unidad.

Lenguaje Pascal

Bucle repeat

Una forma de hacer un bucle infinito en Pascal es con un ciclo repeat como se muestra a continuación:

program HASTAELINFINITO; begin repeat writeln('¡Nunca termina!'); until 2=3; end. 

Ya que 2 nunca es igual a 3, el código se repite hasta el infinito.

Bucle while

program HASTAELINFINITO; begin while 2<>3 do writeln('¡Nunca termina!'); end; end. 

Lenguaje Pascal

Bucle repetir

En Pascal se puede realizar un bucle infinito sin necesidad de establecer una condición equivoca.

 Var i:Entero Repetir i = i + 1 ' Se incrementa por siempre. PorSiempre 

También se puede crear un bucle infinito genuino.

 Var i:Entero Repetir i = i + 1 ' Se ejecuta por siempre porque: HastaQue i < 1 ' esta condición nunca es real. 

Bucle mientras

En este ejemplo olvide incrementar el valor de i.

 Importar "Utiles.prp" Var i:Entero Mientras i = 0 Mensaje("i sigue siendo cero...") ' Se muestra por siempre. FinMientras 

Bucle contar

En este ejemplo se muestra como utilizamos el bucle "contar" para hacer que la variable i alcance el valor 1, pero por X motivo olvidamos establecer la instrucción "dec" para que el bucle decremente valores.

 Importar "Utiles.prp" Var i:Entero Contar i = 2 a 1 Mensaje("i sigue siendo mayor a 1...") Seguir 

Lenguaje Java

Bucle while

public void loop() { int x = 0; while(x<10) { System.out.println("¡Esto no acaba!"); } } 

Lenguaje Matlab/Freemat

Bucle for

function print2()  for i = 1:-1:10  disp(['Hello I am the number ',int2str(i)]);  end end 

Bucle while

 function suma2(a, b)  suma2 = a + b  while (suma2 >= 10)   suma2 = suma2 + 1  end  end 

Lenguaje PHP

Bucle infinito con WHILE

En este código, la variable $variable nunca cambia, siempre vale cero Por lo tanto, se entra en bucle infinito al ser $variable siempre <500.

<?php $variable=0; while ($variable<500) { echo $variable;  } ?> 

Bucle infinito con FOR

<?php for ($var = 0; $var < 10; $var=$var-1) { echo $var."<br>"; } ?> 

Lenguaje Python

Bucle while

Num = 2 while Num != 3: print("Más allá del universo") 

Aquí la variable "Num" tiene el valor de 2, entonces dentro del while la condición es: Si "Num" no es igual a 3 imprime (print) "Más allá del universo"; como el valor de "Num" es constante (igual a 2), entonces dentro de while la condición será verdadera, y el bucle nunca terminará.

Lenguaje Ruby

Bucle while

a = 2 while a!= 3  puts "A las estrellas" end 

Véase también

Referencias

  1. Llanos Ferraris, Diego Rafael (2010). Fundamentos de informática y programación en C. Paraninfo. p. 64. ISBN 9788497327923. 
  •   Datos: Q862372

bucle, infinito, este, artículo, sección, necesita, referencias, aparezcan, publicación, acreditada, este, aviso, puesto, enero, 2013, programación, error, consiste, realizar, ciclo, repite, forma, indefinida, condición, para, finalizar, nunca, cumple, definic. Este articulo o seccion necesita referencias que aparezcan en una publicacion acreditada Este aviso fue puesto el 10 de enero de 2013 Bucle infinito en programacion es un error que consiste en realizar un ciclo que se repite de forma indefinida ya que su condicion para finalizar nunca se cumple 1 Por definicion un bucle debe contener condiciones que establezcan cuando empieza y cuando acaba de manera que mientras las condiciones se cumplan ejecute una secuencia de codigo de manera repetitiva En el caso de ciclo infinito como la condicion de finalizacion no se alcanza el bucle sigue ejecutando el segmento de codigo indefinidamente Indice 1 Excepcion de error 2 Ejemplos 2 1 Lenguaje C 2 1 1 Bucle while 2 1 2 Bucle for 2 2 Lenguaje C 2 2 1 Bucle while 2 2 2 Bucle for 2 3 Lenguaje Visual Basic 2 3 1 Bucle while 2 3 2 Bucle do loop 2 4 Lenguaje Pascal 2 4 1 Bucle repeat 2 4 2 Bucle while 2 5 Lenguaje Pascal 2 5 1 Bucle repetir 2 5 2 Bucle mientras 2 5 3 Bucle contar 2 6 Lenguaje Java 2 6 1 Bucle while 2 7 Lenguaje Matlab Freemat 2 7 1 Bucle for 2 7 2 Bucle while 2 8 Lenguaje PHP 2 8 1 Bucle infinito con WHILE 2 8 2 Bucle infinito con FOR 2 9 Lenguaje Python 2 9 1 Bucle while 2 10 Lenguaje Ruby 2 10 1 Bucle while 3 Vease tambien 4 ReferenciasExcepcion de error EditarLa programacion en automatizacion y robotica puede basarse en un bucle infinito como por ejemplo la funcion void loop en Arduino en este caso el bucle infinito deja de ser un error para pasar a ser una virtud ya que puede reconocerse el estado de un sensor generando un respuesta miles de veces por segundo Ejemplos EditarLenguaje C Editar Bucle while Editar include lt stdio h gt include lt conio h gt int main int x 0 while x lt 10 printf n No acabare nunca n getch return 0 Se observa que la sentencia printf x No acabare nunca n siempre se ejecuta porque la condicion del bucle while siempre es cierta no existe una condicion de salida que obligue al bucle a finalizar Exactamente no se alcanza la condicion de salida Si en el ejemplo anterior dentro del bloque de codigo del bucle while se encontrase la instruccion x El bucle hubiera ejecutado 10 veces y hubiera terminado Tambien existe esta posibilidad con el while true En C include lt stdio h gt include lt conio h gt int main void while 1 printf xad No acabar x82 en algun momento n getch return 0 De todas maneras el programa no llegara nunca hasta aqui Bucle for Editar include lt stdio h gt int main void int cont for cont 0 cont lt 5 cont cont cont 4 printf d n cont return 0 En la sentencia printf se muestra en pantalla 0 1 2 3 0 1 2 3 0 Y tambien podemos crear un ciclo infinito con el for de esta forma include lt stdio h gt int main void for printf Bucle infinito n return 0 Lenguaje C Editar Bucle while Editar include lt iostream gt using namespace std int main void while true cout lt lt Se repite lt lt endl return 0 Bucle for Editar include lt iostream gt using namespace std int main int argc char argv for int i 0 i i i cout lt lt Se repite lt lt endl return 0 Como siempre la variable i va a ser igual a ella misma se incrementa e itera infinitas veces En el siguiente caso por cada vez que se incrementa la variable como es menor a 5 se decrementa dentro del cuerpo del bucle Luego se vuelve a incrementar y de esa manera infinitas veces include lt iostream gt using namespace std int main int argc char argv int h 0 for int i 0 i lt 5 i i h cout lt lt Se repitio lt lt h lt lt Veces lt lt endl return 0 Lenguaje Visual Basic Editar Bucle while Editar Public Function suma2 a b As Double suma2 a b While suma2 gt 10 suma2 suma2 1 Wend End Function Siempre que la suma de a y b sea superior o igual a 10 Bucle do loop Editar Dim Suma Suma 0 Do Suma Suma 1 Loop La variable Suma se sumara infinitamente 1 unidad Lenguaje Pascal Editar Bucle repeat Editar Una forma de hacer un bucle infinito en Pascal es con un ciclo repeat como se muestra a continuacion program HASTAELINFINITO begin repeat writeln Nunca termina until 2 3 end Ya que 2 nunca es igual a 3 el codigo se repite hasta el infinito Bucle while Editar program HASTAELINFINITO begin while 2 lt gt 3 do writeln Nunca termina end end Lenguaje Pascal Editar Bucle repetir Editar En Pascal se puede realizar un bucle infinito sin necesidad de establecer una condicion equivoca Var i Entero Repetir i i 1 Se incrementa por siempre PorSiempre Tambien se puede crear un bucle infinito genuino Var i Entero Repetir i i 1 Se ejecuta por siempre porque HastaQue i lt 1 esta condicion nunca es real Bucle mientras Editar En este ejemplo olvide incrementar el valor de i Importar Utiles prp Var i Entero Mientras i 0 Mensaje i sigue siendo cero Se muestra por siempre FinMientras Bucle contar Editar En este ejemplo se muestra como utilizamos el bucle contar para hacer que la variable i alcance el valor 1 pero por X motivo olvidamos establecer la instruccion dec para que el bucle decremente valores Importar Utiles prp Var i Entero Contar i 2 a 1 Mensaje i sigue siendo mayor a 1 Seguir Lenguaje Java Editar Bucle while Editar public void loop int x 0 while x lt 10 System out println Esto no acaba Lenguaje Matlab Freemat Editar Bucle for Editar function print2 for i 1 1 10 disp Hello I am the number int2str i end end Bucle while Editar function suma2 a b suma2 a b while suma2 gt 10 suma2 suma2 1 end end Lenguaje PHP Editar Bucle infinito con WHILE Editar En este codigo la variable variable nunca cambia siempre vale cero Por lo tanto se entra en bucle infinito al ser variable siempre lt 500 lt php variable 0 while variable lt 500 echo variable gt Bucle infinito con FOR Editar lt php for var 0 var lt 10 var var 1 echo var lt br gt gt Lenguaje Python Editar Bucle while Editar Num 2 while Num 3 print Mas alla del universo Aqui la variable Num tiene el valor de 2 entonces dentro del while la condicion es Si Num no es igual a 3 imprime print Mas alla del universo como el valor de Num es constante igual a 2 entonces dentro de while la condicion sera verdadera y el bucle nunca terminara Lenguaje Ruby Editar Bucle while Editar a 2 while a 3 puts A las estrellas endVease tambien EditarEstructuras de control Bucle Bucle for Bucle while Bucle repetir Teorema del programa estructurado Programacion estructurada Lenguaje de programacion Bomba forkReferencias Editar Llanos Ferraris Diego Rafael 2010 Fundamentos de informatica y programacion en C Paraninfo p 64 ISBN 9788497327923 Datos Q862372Obtenido de https es wikipedia org w index php title Bucle infinito amp oldid 136565075, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos