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.

Cómo utilizar dos declaraciones ‘if’ en C#?

Este es mi código para un cajero automático, pero de alguna manera, cuando presiono el número 2 en el teclado numérico, obtengo mi declaración “else” de que no hubo elección para este número.

“`csharp
Console.WriteLine(“Cuál es tu nombre?”);
string userName = Console.ReadLine();
Console.WriteLine(“Eres: ” + userName);
Console.WriteLine(“Cuánto dinero tienes?”);
string Balance = Console.ReadLine();
float startBalance = float.Parse(Balance);

Console.WriteLine(userName + “, tu saldo es de ” + startBalance + ” EUR”);
Console.WriteLine(“Presiona 1 para RETIRADA”);
Console.WriteLine(“Presiona 2 para DEPÓSITO”);

if (Console.ReadKey().Key == ConsoleKey.NumPad1)
{
Console.ReadLine();
Console.WriteLine(“Cuánto dinero deseas retirar?”);
string Withdrawal = Console.ReadLine();
float wBalance = float.Parse(Withdrawal);

Console.WriteLine(“Tu nuevo saldo es de ” + (startBalance – wBalance) + ” EUR”);
Console.ReadLine();
Environment.Exit(0);
}

if (Console.ReadKey().Key == ConsoleKey.NumPad2)
{
Console.ReadLine();
Console.WriteLine(“Cuánto dinero deseas depositar?”);
string Deposit = Console.ReadLine();
float dBalance = float.Parse(Deposit);

Console.WriteLine(“Tu nuevo saldo es de ” + (startBalance – dBalance) + ” EUR”);
Console.ReadLine();
Environment.Exit(0);
}

else Console.WriteLine(“No hubo elección para este número”);

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El problema con el código es que la segunda instrucción if no está vinculada a la primera, lo que hace que se ejecute de forma independiente cuando se presiona cualquier tecla que no sea NumPad2. Para solucionar esto, la segunda instrucción if debería ser una instrucción else if, de la siguiente manera:

    if (Console.ReadKey().Key == ConsoleKey.NumPad1)
    {
        // Código de retiro aquí
    }
    else if (Console.ReadKey().Key == ConsoleKey.NumPad2)
    {
        // Código de depósito aquí
    }
    else
    {
        Console.WriteLine("No se hizo una elección válida para este número");
    }
    

    De esta manera, el código de depósito se ejecutará solo si se presiona NumPad2 específicamente después del bloque de código de retiro, y la instrucción else final se ejecutará solo si se presiona una tecla que no sea NumPad1 o NumPad2.

Comments are closed.