• Blog
  • Acerca
  • Autor
  • Contacto
  • El break y el ciclo infinito

    Ya vimos hace poco el ciclo for, y vimos que su estructura era así:

    for ( inicio ; fin ; aumento )

    ¿Qué pasa si no ponemos ni inicio ni fin? Pues obtenemos un ciclo infinito, así:

    for(;;)

    ¿Y cómo se detiene? Pues con un break, así:

    for(;;)
    {
    break;
    }

    ¿Y esto de que me sirve? Pues la idea es repetir las instrucciones hasta que el usuario quiera, es decir:

    #include<stdio.h>
    #include<conio.h>
    int main()
    {
      char end=0;
      for(;;)
      {
        gotoxy(5,5);printf("Ya quieres salir? (y/n): ");scanf("%c",&end);
        if(end=='y')
          break;
        clrscr();
      }
    }

    Creo que no les había mencionado que si dentro de una condición if sólo va una instrucción no es necesario poner llaves, y también aplica con los ciclos.

    Si el usuario no introduce una ‘y’, el programa nunca se detendrá. Luego vamos a ver que las propiedades de un ciclo for infinito son muy parecidas a las del ciclo while que veremos más adelante.

    1. Jesus dice:

      Muy buen ejemplo, gracias de nuevo.

    2. Andrés dice:

      /*estoy realizando un ejercicio similar pero me genera error y no se porque me podrían ayudar.
      gracias*/

      #include
      int main()
      {
      int cant,total;
      char prod[20];
      cout<<"Ciclo infinito for"<<endl<<endl;
      cout<<"Gastos caja China"<<endl;
      cout<<"Ingrese la cantidd de productos a comprar"<>cant;
      cout<<"Ingrese el tipo de producto a registrar"<>prod;
      total*=cant;
      cout<<total<<" Es el valor a pagar"<<endl;
      for(;;)
      {
      cout<<"Quieres terminar y salir del ciclo si/no"<<endl;
      if(end=="si")
      break;
      }
      }

    3. THEbatzuk dice:

      Pues dejando de lado la (confusa) primera parte de tu progama, el ciclo infinito quedaría así:

      #include<string.h>
      #include<iostream>
      using namespace std;
       
      int main()
      {
          char end[10];
          cout<<"Ciclo infinito for"<<endl<<endl;
          for(;;)
          {
              cout<<"Quieres terminar y salir del ciclo si/no: ";
              cin.getline(end, 10, '\n');
              if(strcmp(end,"si")==0)
                  break;
          }
      }

      Te faltaba declarar el namespace de la librería iostream. Tal vez quieras checar este post sobre cómo usar cin y cout: http://codigoc.org/280-como-empezar-a-usar-iostream . Si quieres que el programa se acabe al escribir “si”, entonces hay que usar strings (librería string.h), para leer un string hay que usar cin.getline: http://codigoc.org/464-como-usar-cin-getline-en-c y para compararlas hay que usar la función strcmp: http://www.cplusplus.com/reference/clibrary/cstring/strcmp/

      Si todo esto es muy confuso dime y te preparo una versión más simple de lo mismo.

    4. Andrés dice:

      Gracias por la respuesta, pero el ejercicio exactamente dice así:
      Desarrollar un programa que use un ciclo for infinito y un estatuto break, para el cual se desea calcular los gastos diarios de la caja chica de un bufete de consultoría en sistemas. Mostrar en pantalla el gasto total. Los gastos pueden ser diversos como papelería, lápices, copias, etc. Recuerde que el ciclo infinito no termina, por lo tanto el uso del estatuto break es para romper el ciclo infinito, por lo tanto tendrá que validar para romper el ciclo infinito y salir.

    5. oscar dice:

      ,,por favor necesito saber q es ,,pomper un ciclo infinito ,,,,,y un ejemplo por lo menos ,,,,,,le agradesco al q me ayude gracias…!!!!!!

    6. oscar dice:

      perdon jajajajaja es romper un ciclo infinito

    7. Andrea dice:

      hola que tal?
      bueno pues debo hacer 3 programas, uno lo tengo hecho pero no me corre bien, y otros dos que de plano no se que haer me podrian ayudar por favor?
      uno es :
      Escribe un programa que al recibir como dato un numero entero N calcule el resultado de la siguiente serie:
      1+ 1/2+1/3+1/4+….1/n
      ese es uno de los programas los otros 2 son un poco mas largos son de el libro fundamentos de programacion piensa en c de cairó

      http://books.google.com.mx/books?id=AZ1ZXBlu9Y8C&printsec=frontcover&dq=piensa+en+c&hl=es&ei=CahqTfPWDYGasAOgutimBA&sa=X&oi=book_result&ct=result&resnum=1&ved=0CCQQ6AEwAA#v=onepage&q&f=false

      ese es el libro de la pag 129 ocupo el 3.2 el 3.6 i de la pagina 131 el 3.9 me haria un enorme favor si me pudieran ayudar
      de antemano gracias :)

    8. nikky dice:

      necesito hacr u programa d una kja registradora pero necesito husar gotos, if y while, m ya tengo la mator part pero le tengo k aumentar el goto xy y no s como utilizarlo m puedn ayudar????

    1. [...] dijimos en el post anterior que los ciclos infinitos for son muy parecidos a los ciclos while, pero quedó en duda cómo es un ciclo [...]

    2. [...] primos que el usuario quiera y es interesante porque es un buen ejemplo de la utilidad de los ciclos infinitos, que ya habíamos visto [...]

    Hola, escribe aquí tu comentario: