SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: SCM_24 en Miércoles 8 de Febrero de 2006, 03:22

Título: No Me Recorre El For
Publicado por: SCM_24 en Miércoles 8 de Febrero de 2006, 03:22
A ver si sabeis por que no me recorre el for, no entra, y no se muy bien a que se debe, ya que no me muestra los datos porque no entra en el for, gracias


case 2:
               {
                  Console.WriteLine("Añadir Habitacion");
                  ArrayList K = new ArrayList ();
                  Habitacion P = new Habitacion();
                  P.Nombre = "Cuarto de Baño";
                  P.Pared = 2;
                  P.Puertas=10;
                  P.Ventanas=1;
                  P.TipoPintura=2;

                  K.Add (P);

                  P = new Habitacion();
                  P.Nombre = "hghjghjgjh";
                  P.Pared = 2;
                  P.Puertas=10;
                  P.Ventanas=1;
                  P.TipoPintura=2;

                  K.Add (P);
                  //Habitacion.ImprimirPersonas (K);
                  //K.RemoveAt (1);
                  for (int i=0 ; i<=K.Count; i++)
                  {
                     //Habitacion P = (Habitacion) K;
                     Console.WriteLine ("{0} - {1} - {2} - {3} - {4} - {5} ", P.Nombre, P.Pared, P.Puertas, P.Ventanas, P.TipoPintura);
                  }
                  break;
               }
Título: Re: No Me Recorre El For
Publicado por: JuanK en Miércoles 8 de Febrero de 2006, 04:57
Código: Text
  1.  
  2. case 2:
  3.           {
  4.             Console.WriteLine(&#34;Añadir Habitacion&#34;);
  5.             ArrayList K = new ArrayList ();
  6.             Habitacion P = new Habitacion();
  7.             P.Nombre = &#34;Cuarto de Baño&#34;;
  8.             P.Pared = 2;
  9.             P.Puertas=10;
  10.             P.Ventanas=1;
  11.             P.TipoPintura=2;
  12.  
  13.             K.Add (P);
  14.  
  15.             P = new Habitacion();
  16.             P.Nombre = &#34;hghjghjgjh&#34;;
  17.             P.Pared = 2;
  18.             P.Puertas=10;
  19.             P.Ventanas=1;
  20.             P.TipoPintura=2;
  21.  
  22.             K.Add (P);
  23.             //Habitacion.ImprimirPersonas (K);
  24.             //K.RemoveAt (1);
  25.             for (int i=0&#59; i&#60;=K.Count; i++)
  26.             {
  27.               //Habitacion P = (Habitacion) K[i];
  28.               Console.WriteLine (&#34;{0} - {1} - {2} - {3} - {4} &#34;, P.Nombre, P.Pared, P.Puertas, P.Ventanas, P.TipoPintura);
  29.             }
  30.             break;
  31.           }
  32.  

prueba asi.
Título: Re: No Me Recorre El For
Publicado por: Amilius en Miércoles 15 de Febrero de 2006, 18:19
Cita de: "SCM_24"
for (int i=0 ; i<=K.Count; i++)
{
//Habitacion P = (Habitacion) K;
1. Te aconsejo leer un manual de estilo de programacion, esos nombres de variables que usas solo te pueden llevar al desastre.

2. El ciclo for esta mal limitado, debe ser "<" al numero de elementros  y nunca "<=" al numero de elementos, recuerda que existe el cero.

3. En lugar de  esto:
//Habitacion P = (Habitacion) K;

es:

P = (Habitacion) K;

4. En esos casos donde de todos modos haras una asignacion igual a la anterior es mejor utilizar un foreach.