es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Bucle while que no se rompe (creo)

No entiendo si he creado un bucle infinito o simplemente está tardando mucho.

int wuerfeln_bis_wurfverteilung(Wurfverwaltung ww) { //toma un objeto de la clase con un número x de tiradas de dados
  Wurfverwaltung xx(ww.anzahl);  //crea un objeto con x (del parámetro) número de tiradas
  cout << xx << endl;

  int z=0;

  while (!(xx == ww)) { //mientras los dos objetos sean desiguales
    Wurfverwaltung xx(ww.anzahl); //sigue creando nuevos objetos
    z++; //y aumenta z en uno
    cout << xx<< "  " << z << " ";
  }

  return z;
}

//La clase se ve así

class Wurfverwaltung{
friend int wuerfeln_bis_wurfverteilung(Wurfverwaltung&);
private:
unsigned int anzahl;
Wurf* w; // puntero a una matriz de objetos de una clase anterior
…montón de funciones

La función siempre está probando si xx del bucle anterior y comparándolo con ww, ¿o se actualiza xx en cada bucle? El código no parece romperse incluso si tomo 2 como el número de tiradas. (respondido. ¡Gracias!)
Editar:
El propósito de la función es tomar un objeto con una matriz aleatoria y recrear una matriz con la misma combinación y devolver el número de intentos que se tomaron.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El bucle while está creando nuevos objetos de Wurfverwaltung dentro del propio bucle. Entonces, el objeto xx se actualiza en cada iteración del bucle while. No siempre se prueba contra el mismo objeto xx anterior al bucle while. Sin embargo, parece haber una posibilidad de un bucle infinito ya que no hay una condición que limite la cantidad de veces que se puede ejecutar el bucle. El bucle solo se detiene cuando el objeto xx se vuelve igual al objeto ww. Dependiendo de los valores de entrada, puede llevar una cantidad poco realista de tiempo para que el objeto xx se vuelva igual al objeto ww, lo que podría crear la impresión de un bucle infinito.

Comments are closed.