Я ценю замечания, поднятые в комментариях, но также считаю, что это академическое упражнение, которое является хорошим введением в циклическую логику, поэтому я буду настаивать на решении циклических задач. Вы изучаете и, по-видимому, на ранних этапах - я не могу не подчеркнуть, насколько важно писать алгоритмы на английском (или на вашем родном языке), прежде чем пытаться писать код. Всю свою жизнь вы думали по-английски, и теперь вы изучаете новый язык со строгими правилами и высоким требованием быть точным. Точно так же, как если бы вы говорили по-французски, и сначала вы собрали предложение, которое хотите сказать по-английски (со словами во французском порядке), затем вы переводите на французский, а затем говорите по-французски. Это займет много времени, прежде чем вы думаете на французском
То же самое для кода; думать по-английски, писать комментарии на английском языке, перевод на c #, вуаля; красиво прокомментированный код (бонусные баллы)
В моей программе есть общий оценщик цен на автомобили. Если год ниже 1990 года, цена устанавливается на уровне 1000 долларов. Но если год увеличивается на один год для каждого добавленного года, к смете должны быть добавлены дополнительные 200 долларов. Например, если 1991 год, то цена должна быть 1200 долларов.
Я попытался увеличить год в операторе if и добавить 200 к переменной, используемой для установки цены, что не работает. Я также пытался использовать цикл for, который тоже не удался.
//this should take in the year as a parameter to determine for
public int DetermineMarketValue(int forYear)
{
//pick 1000 as the starting value
int carValue = 1000;
//if the user asked for earlier than 1990, quit early
if (forYear < 1990)
return carValue;
//they must have asked for a year after 1990, let's do the math
//start with 1990, test if we should add to the value, go up a year and test if we should add again
//this logic starts with 1990 and if the user asked for 1990 the loop will not run, 1991 it UBS once etc
//if the logic should be that a 1990 car is worth 1200, make it <= not <
for (int year = 1990; year < forYear; year++)
{
//add 200 dollars onto the value and test
carValue -= 200;
}
//the loop has run the required number of times to get the final value, return it
return carValue;
}
В этом коде есть преднамеренная ошибка - Я здесь не для того, чтобы получить вашу степень за вас, поэтому я допустил грубую и преднамеренную ошибку, отчасти для того, чтобы вы подумали о написанном коде и частично, чтобы подчеркнуть, как, когда вы пишете свой алгоритм в комментариях, вы можете проверить, что код соответствует комментариям