[ Foro de C# ]
Tengo este codigo que simula un elevador de 12 pisos, y entonces no me esta funcionando como deberia, no tiene errores ( si no me equivoco ) pero al correrlo repite la misma pregunta, Aqui abajo el codigo:
internal class Program
{
private const string QUIT = "q";
public static void Main(string[] args)
{
Console.WriteLine("Sientase bienvenido al edificio Josmer");
Elevator ascensor = new Elevator();
string input = string.Empty;
while (input != QUIT)
{
Console.WriteLine("Por favor, presione al piso que usted desea ir");
input = Console.ReadLine();
if (int.TryParse(input, out int piso))
ascensor.FloorPress(piso);
else if (input == QUIT)
Console.WriteLine("Adiocito!");
else
Console.WriteLine("Ese piso no existe, presione nuevamente!");
}
}
}
public class Elevator
{
private const int pisofinal = 12;
private int _actual = 1;
public void FloorPress(int piso)
{
if (piso < 1 || piso > 12)
Console.WriteLine("Solo 1 al 12 o q para salir");
return;
if (piso - _actual < 0 && _actual > 1)
bajar(piso);
else if (piso - _actual > 0 && _actual < pisofinal)
subir(piso);
else
Stop(piso);
}
private void subir(int piso)
{
for (int i = _actual; i <= piso; i++)
{
Console.WriteLine($"Subiendo...{i}");
Thread.Sleep(500);
}
Stop(piso);
}
private void bajar(int piso)
{
for (int i = _actual; i >= piso; i--)
{
Console.WriteLine($"Bajando...{i}");
Thread.Sleep(500);
}
Stop(piso);
}
private void Stop(int piso)
{
_actual = piso;
Console.WriteLine("Estamos en el piso {0}", piso);
}
}
Modificar mensaje
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)