C# 尝试运行本地函数C后没有结果#

C# 尝试运行本地函数C后没有结果#,c#,C#,我对C#一无所知,我正试图编写一个函数,计算某个金额在复合利率之后(n年内)翻倍的时间 现在,当我在VS代码中运行它时,我没有收到任何错误,但也没有得到结果。这是我目前的代码: using System; int NumberOfYearsToDouble(int Amount, int InterestRate) { int NumberOfYears = 0; int Percentage; while (Amount < (Amount*2)) {

我对C#一无所知,我正试图编写一个函数,计算某个金额在复合利率之后(n年内)翻倍的时间

现在,当我在VS代码中运行它时,我没有收到任何错误,但也没有得到结果。这是我目前的代码:

using System;

int NumberOfYearsToDouble(int Amount, int InterestRate) {
    int NumberOfYears = 0;
    int Percentage;

    while (Amount < (Amount*2)) {
        Percentage = (Amount/100) * InterestRate;
        Amount = Amount + Percentage;
        NumberOfYears++;
    }
    return NumberOfYears;
}
NumberOfYearsToDouble(1000,8);
Console.WriteLine();
使用系统;
int NumberOfYearsToDouble(int金额,int利率){
int NumberOfYears=0;
整数百分比;
而(金额<(金额*2)){
百分比=(金额/100)*利息;
金额=金额+百分比;
NumberOfYears++;
}
返回数年;
}
年份数为双倍(1000,8);
Console.WriteLine();

您应该尝试这样修复它

int result = NumberOfYearsToDouble(1000,8);
Console.WriteLine(result);

您尚未在控制台中打印结果。而且你的while循环总是真的,你有一个无限循环。 尝试此操作,您将在控制台中看到结果:

    using System;

    int NumberOfYearsToDouble(int Amount, int InterestRate) {
        int NumberOfYears = 0;
        int Percentage;
        condition = Amount*2

        while (Amount < condition) {
            Percentage = (Amount/100) * InterestRate;
            Amount = Amount + Percentage;
            NumberOfYears++;
        }
        return NumberOfYears;
    }
    int results = NumberOfYearsToDouble(1000,8);
    Console.WriteLine(results);
使用系统;
int NumberOfYearsToDouble(int金额,int利率){
int NumberOfYears=0;
整数百分比;
条件=金额*2
while(数量<条件){
百分比=(金额/100)*利息;
金额=金额+百分比;
NumberOfYears++;
}
返回数年;
}
int results=NumberOfYearsToDouble(1000,8);
控制台写入线(结果);

请查看循环条件以清楚地看到,并确保在控制台中打印结果以查看结果。这将有助于你进行调试。谢谢

您正在创建一个无限循环:

while (Amount < (Amount*2))

我打赌代码执行也不会停止。您的
while
条件永远无法返回
false
。返回!=打印到控制台。Return=将此值返回给调用我的方法。因此,您返回结果,但通过不将其分配给变量来丢弃它。因为,您没有打印任何内容。尝试Console.WriteLine(NumberOfYearsToDouble(1000,8));谢谢!我刚才才意识到我的错误,太愚蠢了:(不管怎样,它现在可以工作了,再次感谢!
condition=Amount*2
不会编译
int doubleAmount = Amount*2;
while (Amount < doubleAmount)