在我的程序中,我有一个通用的车辆价格估算器。如果年份低于1990,则价格定为1000美元。但是,如果每年增加一年,则应增加200美元。例如,如果年份为1991,则价格应为1200美元。
我试图在if语句中增加Year,然后将200添加到用于设置价格的变量中,这是行不通的。我还尝试使用for循环,该循环也不成功。
public decimal DetermineMarketValue()
{
decimal carValue;
if (Year < 1990)
carValue = 1000;
if (Year > 1990)
for (Year++)
{
carValue += 200;
}
return carValue;
}
每年每次增加一美元,估计应增加200美元。
答案 0 :(得分:2)
我认为您并没有初始化carValue
编译器,但是,您需要使用默认值进行初始化。
我认为,如果您有这样的简单计算,请不要使用循环。
public class Program
{
public static void Main()
{
Console.WriteLine(DetermineMarketValue(2019));
}
public static double DetermineMarketValue(int Year)
{
double carValue = 1000;
if (Year > 1990)
{
int numYears = Math.Abs(Year - 1990);
carValue = 1000 + (numYears * 200);
}
return carValue;
}
}
查看结果here。
答案 1 :(得分:0)
我感谢评论中提出的观点,但我也认为这是一次学术练习,是循环逻辑的良好入门,因此我将继续介绍循环解决方案。您正在学习,而且似乎还处于早期阶段-我无法强调他在尝试编写代码之前用英语(或您的母语)编写算法的重要性。您一生都用英语思考,现在您正在学习一种新语言,它具有严格的规则和对精确性的高要求。就像您在说法语一样,首先要组装要用英语说的句子(以法语顺序排列),然后翻译为法语,然后再说法语。您需要花很长时间才能以法语进行思考
与代码相同;想英语,写英语评论,翻译成C#,瞧!注释良好的代码(加分项)
在我的程序中,我有一个通用的车辆价格估算器。如果年份低于1990,则价格定为1000美元。但是,如果每年增加一年,则应增加200美元。例如,如果年份为1991,则价格应为1200美元。
我试图在if语句中增加Year,然后将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;
}
此代码有故意的错误-我不是在这里为您做学位,所以我犯了一个过分而故意的错误,部分原因是让您考虑编写的代码并部分突出显示当您在注释中编写算法时如何检查代码是否与注释匹配
答案 2 :(得分:-1)
如果必须使用循环,请以为必须使用while循环,而不是:
public static decimal DetermineMarketValue(int Year)
{
decimal carValue = 1000;
while (Year > 1990)
{
carValue += 200;
Year--;
}
return carValue;
}