C sharp - Este código que simula un elevador no corre correctamente

 
Vista:
sin imagen de perfil
Val: 13
Ha aumentado su posición en 4 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Este código que simula un elevador no corre correctamente

Publicado por JosmerB. (8 intervenciones) el 01/08/2019 21:37:23
Este codigo deberia ser, como un elevador de 12 pisos, y me debe pedir a que piso debe ir y si es uno mal me diga que no, pero cuando ingreso el piso me repite la pregunta.

Aqui el codigo:

Gracias de antemano


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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);
     }
 }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 158
Bronce
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

Este código que simula un elevador no corre correctamente

Publicado por Yamil Bracho (1164 intervenciones) el 01/08/2019 21:52:06
Estas usando un iDE ? Te falta una llave en
1
2
3
4
5
6
public void FloorPress(int piso)
     {
         if (piso < 1 || piso > 12)
            Console.WriteLine("Solo 1 al 12 o q para salir");
            return;
            ...

Deberia ser
1
2
3
4
5
6
7
8
public void FloorPress(int piso)
     {
         if (piso < 1 || piso > 12)
        {
            Console.WriteLine("Solo 1 al 12 o q para salir");
            return;
        }
            ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 13
Ha aumentado su posición en 4 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Este código que simula un elevador no corre correctamente

Publicado por JosmerB. (8 intervenciones) el 01/08/2019 21:57:44
Nono, estaba usando el VS 2019, lo que pasa es que soy principiante, y necesito un poco de ayuda en varios proyectitos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 13
Ha aumentado su posición en 4 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Este código que simula un elevador no corre correctamente

Publicado por JosmerB. (8 intervenciones) el 01/08/2019 22:05:59
Pero si pongo esa llave ahi despues del return, los if y else que estan despues me dan error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 158
Bronce
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

Este código que simula un elevador no corre correctamente

Publicado por Yamil (1164 intervenciones) el 01/08/2019 22:35:50
Esos if no lo esta ejecutando por el return, que se ejecuta primero que ellos. Es mas deberia decirte que esos if son un codigo sin efecto porque no se ejecutan...
Aqui tienes otra version que cambie un poquito:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
using System;
using System.Threading;
 
namespace kaka
{
    internal static class Program
    {
        private const string QUIT = "q";
 
        private static void Main()
        {
            Elevator ascensor = new Elevator();
            Console.WriteLine("Sientase bienvenido al edificio Josmer");
 
            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 > pisofinal)
            {
                Console.WriteLine($"Solo 1 al {pisofinal} o q para salir");
                return;
            }
 
            if (piso != _actual)
            {
                MoveToFloor(piso);
            }
 
            Stop(piso);
        }
 
        private void MoveToFloor(int to)
        {
            int from = _actual;
            int inc = 1;
            string action = "Subiendo";
 
            if (to < from)
            {
                inc = -1;
                action = "Bajando";
            }
 
            bool exitFlag = false;
            int i = from;
            while (!exitFlag)
            {
                Console.WriteLine($"{action}...{i}");
                i += inc;
                exitFlag = (to > from) ? i > to : i < to;
                Thread.Sleep(500);
            }
        }
 
        private void Stop(int piso)
        {
            _actual = piso;
            Console.WriteLine("Estamos en el piso {0}", piso);
        }
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 13
Ha aumentado su posición en 4 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Este código que simula un elevador no corre correctamente

Publicado por JosmerB. (8 intervenciones) el 01/08/2019 22:42:47
Oh por Dios funciona de maravlla, que le cambiaste?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Este código que simula un elevador no corre correctamente

Publicado por Gabriel (1 intervención) el 09/12/2021 00:27:00
A mi no me compila el codigo, me muestra que tengo varios errores, estoy usando el programa "SharpDelevop", no se si tenga algo que ver.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar