Во-первых, просто хочу сказать, что я благодарен за этот сайт; это помогло мне найти правильный путь много раз, когда мне нужно было отладить.
Я ОЧЕНЬ зеленый с C #; Я студент, изучающий программирование. Я написал программу для расчета платы за парковку каждого человека, а затем сделал общую сумму для всех затрат на парковку. Следуя примеру из книги, я настроил «Пока» l oop так, чтобы он заканчивался только тогда, когда человек, вводящий данные, вводит «-1», в противном случае его постоянно просят ввести еще одну плату за парковку.
У меня были проблемы с получением полной платы за все, и я обратился к своему профессору. Он помог мне решить эту проблему, но создал другую и не осознал этого. Я не хочу, чтобы go вернулся в колодец во второй раз, особенно указать, что он создал новую проблему. Проблема в том, что когда вы вводите -1, чтобы остановить l oop, он возвращает итоговую сумму. Он не должен этого делать, он только для того, чтобы остановить l oop. Кроме того, общая сумма даже не точна; он принимает значение предыдущей записи (это так странно, что мне кажется, что это большая подсказка). Обратите внимание, что l oop останавливается в этой точке, так что это хорошо; он также не должен также возвращать плату за парковку.
Ниже приведена большая часть кода (я пропустил инициализации / объявления для переменных, но могу добавить их при необходимости). Я чувствую, что операторы While и If вообще не должны вычислять «-1»; Я не могу понять, как это «проходит»:
while (hoursParked != -1)
{
Console.WriteLine("Enter each customer's total hours parked (no more than 24) or type -1 to quit: ");
hoursParked = Double.Parse(Console.ReadLine());
if (hoursParked > 0 && hoursParked < 3.0)
{
feeCharged = lessThan3Rate;
}
if (hoursParked >= 3.0 && hoursParked <= 18.00)
{
moreThan3thru18Rate = (2.00 + ((hoursParked - 2) * 0.50));
feeCharged = moreThan3thru18Rate;
if (hoursParked > 18.00)
{
feeCharged = moreThan18Rate;
}
Console.WriteLine($"The customer's charge is: {feeCharged:C}");
Console.WriteLine();
totalAllReceipts = totalAllReceipts + feeCharged;//This will be the sum of all the fees charged.
}
{
Console.WriteLine("End of Day Totals:");
Console.WriteLine($"The daily total of all receipts is: {totalAllReceipts:C}");
}
Я уверен, что есть более эффективные способы выполнения вычислений и тому подобное, но это то, где мы находимся в классе с точки зрения понятий, так пожалуйста, игнорируйте код корректирующего уровня! ТИА за любую помощь!