Это та же ситуация, что и на ваш другой вопрос: Делать циклы и циклы while
Вы захотите использовать оператор if
или оператор switch
для анализапользовательский ввод:
if (response == 'A')
{
Console.WriteLine("Enter amount of sales");
string salesStr = Console.ReadLine();
Console.WriteLine(Double.Parse(salesStr) * COMMRATE);
Console.WriteLine("Enter sales member to continue or Z to exit");
response = Convert.ToChar(Console.ReadLine());
}
if (response == 'B')
{
Console.WriteLine("Enter amount of sales");
string salesStr = Console.ReadLine();
Console.WriteLine(Double.Parse(salesStr) * COMMRATE);
Console.WriteLine("Enter sales member to continue or Z to exit");
response = Convert.ToChar(Console.ReadLine());
}
if (response == 'E')
{
Console.WriteLine("Enter amount of sales");
string salesStr = Console.ReadLine();
Console.WriteLine(Double.Parse(salesStr) * COMMRATE);
Console.WriteLine("Enter sales member to continue or Z to exit");
response = Convert.ToChar(Console.ReadLine());
}
Кроме того, вы объявляете строку salesStr
внутри области действия while
(или в моем примере if
).Вы не сможете получить к нему доступ в другом месте.Поскольку вы повторяете одну и ту же логику в каждом блоке, но с другим значением, я был бы склонен переместить повторяющийся код за его пределы и поместить его туда только один раз.Таким образом, вам нужно изменить только одно место в будущем, если изменятся требования:
string salesStr;
if (response == 'A')
{
Console.WriteLine("Enter amount of sales");
salesStr = Console.ReadLine();
}
if (response == 'B')
{
Console.WriteLine("Enter amount of sales");
salesStr = Console.ReadLine();
}
if (response == 'E')
{
Console.WriteLine("Enter amount of sales");
salesStr = Console.ReadLine();
}
Console.WriteLine(Double.Parse(salesStr) * COMMRATE);
Console.WriteLine("Enter sales member to continue or Z to exit");
response = Convert.ToChar(Console.ReadLine());
Поскольку каждый из этих операторов if
выполняет одно и то же, вы можете комбинировать их тоже:
string salesStr;
if (response == 'A' || response == 'B' || response == 'E')
{
Console.WriteLine("Enter amount of sales");
salesStr = Console.ReadLine();
}
Console.WriteLine(Double.Parse(salesStr) * COMMRATE);
Console.WriteLine("Enter sales member to continue or Z to exit");
response = Convert.ToChar(Console.ReadLine());