У меня есть вложенный оператор if/else в цикле for, чтобы определить, действительно ли значение имеет значение массива. Он возвращает все значения только штрафа, однако, если IF правилен, он все еще делает else еще три раза. Я подумал, что когда-то это будет равным один раз, это остановится, но я полагаю, что здесь что-то не хватает.C# вложенное if/else в цикле for
Любые мысли?
string sectionChoice;
int ticketQuantity;
double ticketPrice, totalCost;
string[] section = { "orchestra", "mezzanine", "balcony", "general" };
double[] price = { 125.25, 62.00, 35.75, 55.50 };
bool isValidSection = false;
sectionChoice = GetSection();
ticketQuantity = GetQuantity();
for (int x = 0; x < section.Length; ++x)
{
if (sectionChoice == section[x])
{
isValidSection = true;
ticketPrice = price[x];
totalCost = CalcTicketCost(ticketPrice, ticketQuantity);
Console.Write("\n\nTotal cost for the tickets are: {0:c2}", totalCost);
}
else
Console.Write("\n\nInvalid entry, {0} does not exsist", sectionChoice);
}
Когда действительно, она возвращает что-то вроде этого:
Ваша цена является 32,50. Неверная запись, й не exsist Invalid записи, й не exsist Invalid записи, й не exsist
Вы должны использовать десятичные значения для значений валюты ([подробнее] (http://stackoverflow.com/q/693372/188246)). –