如何更新值

时间:2016-06-30 23:26:30

标签: c# visual-studio

所以,我正在构建一个银行模拟器,其中包含我目前学到的所有内容,我只想将这段代码提升到另一个级别,直到它的功率达到9000以上。(DBZ参考的道具!)I& #39;我在我的代码中寻找一种方法,在操作后更新余额的值。因为现在,在手术后,我的价值被重置,我不想要那样做。 而且,在相同的场合,给我一些指示,提示使代码更短,更可读,以增加更多的深度!

using System;

namespace Bank
{
public class Program
{
    static void Main()
    {
        Console.ForegroundColor = ConsoleColor.Yellow;
        double balance = 2000;
        bool exit = true;
        Console.WriteLine("|----------Welcome to the Nobody's Poor Bank!----------|");
        Console.ReadLine();
        Console.WriteLine("You actually have 2000$ in your bank account.");
        Console.ReadLine();
        Console.Clear();

        while (exit==true)
        {
            Console.WriteLine("What operation would you like to do?\n");
            Console.Write("(W) Withdraw  (D) Deposit  (E) Exit : ");
            string choice = Console.ReadLine();

            switch (choice)
            {
                case "W":
                case "w":
                    Console.Write("\nHow much money would you like to withdraw? : ");
                    string WithdrawAmount = Console.ReadLine();
                    double WithdrawValue;
                    double.TryParse(WithdrawAmount, out WithdrawValue);
                    balance -= WithdrawValue;
                    Console.WriteLine("\nAfter the operation, your balance is now " + balance + "$");
                    Console.ReadKey();
                    Console.Clear();
                    break;

                case "D":
                case "d":
                    Console.Write("\nHow much money would you like to deposit? : ");
                    string DepositAmount = Console.ReadLine();
                    double DepositValue;
                    double.TryParse(DepositAmount, out DepositValue);
                    balance += DepositValue;
                    Console.WriteLine("\nAfter the operation, your balance is now " + balance + "$");
                    Console.ReadKey();
                    Console.Clear();
                    break;

                case "E":
                case "e":
                    Console.WriteLine("\nThank you for using our services!");
                    Console.ReadKey();
                    exit = false;
                    break;

                default:
                    Console.WriteLine("\nThat is not a valid input...");
                    Console.ReadKey();
                    Console.Clear();
                    break;                                                             
            }
        }                
    } 
}
}

2 个答案:

答案 0 :(得分:1)

在下面的代码中,您只是计算余额结果应该是什么,而不是实际更新它。

Console.WriteLine(
    "\nAfter the operation, your balance is now " + 
    (balance - WithdrawValue) + "$");

尝试将此更改为

balance -= WithdrawValue;
Console.WriteLine("\nAfter the operation, your balance is now " + balance + "$");

第一行用预期结果更新balance变量。 第二行现在只是将新的余额值输出到控制台。

答案 1 :(得分:0)

1)在程序类上将您的余额声明为静态,而不是在主线程上 像

Static double balance = 2000;

这将更新程序运行会话的生命周期的余额值

2)您可以使用

代替使用d和D作为开关案例
Switch(choice.ToUpper())
 Case : "D"

这会将选项转换为大写,因此您只会测试大写字母D或B或其他内容。这意味着如果用户输入d或D,它仍将提供相同的输出。

3)使用switch语句意味着如果条件为真,你希望应用程序以某种方式运行.....所以你不需要在所有情况下都有控制台,readkey,因为只有一个将在一段时间

而是在切换之后将代码放在此之后,然后显示

Switch(Choice.ToUpper())
{ case : "D"
//some code..........
break;

case : "F"
//some code..........
break;
}
Console.WriteLine(balance.ToString());
Console.ReadKey();