0

好的,目前我自己对编程和学习很陌生。目前我正在学习编程课程以帮助更好地理解编程。我遇到了一个困扰我的问题。

现在,与我提供的相比,我可以以不同的方式和方式完成任务。我的问题是,为什么会这样?我没有收到任何错误,唯一发生的事情是在输入控制台 Fezzes 之后。我想知道我做错了什么。

static void Main(string[] args)
{

    double[] Population = new double[6];
    string[] Years = { "2", "3", "4", "5", "6", "7" };
    double GrowthPercentage = 0.0;
    double MathPercentage = 0.0000;
    double ActualGrowth = 0.0;
    int WhileCounter = 0;

    //Ask user for Population of Roarkville
    Console.WriteLine("Enter the Population of RoarkVille: ");
    //Read Population and store
    Population[0] = Convert.ToDouble(Console.ReadLine());
    //Ask user for Growth percentage
    Console.WriteLine("Enter the Growth percentage ");
    //Read Growth Percentage
    GrowthPercentage = Convert.ToDouble(Console.ReadLine());
    //Calculation of Growth Percentage: Growth Percentage/100 = Math Percentage 
    MathPercentage = GrowthPercentage / 100;
    //ActualGrowth = Population * Math Percentage 

    //Population2 = ActualGrowth + Population 

    while (WhileCounter < 5)
    {
       ActualGrowth = Population[WhileCounter] + MathPercentage;

       WhileCounter++;

       Population[WhileCounter] = ActualGrowth + Population[WhileCounter--];
    }

    for (int i = 0; i < Population.Length; i++)
    {
        Console.WriteLine("Population of 201{0:d}", Years[i]);
        Console.WriteLine(Population[i]);
    }
    //Display 2012 Population 

    //Display 2013 Population 

    //Display 2014 Population 

    //Display 2015 Population 

    //Display 2016 Population 

    //Display 2017 Population

    Console.ReadLine();
}
4

4 回答 4

3

所以发生的情况是,当您使用此代码输入增长百分比时:

    while (Counter < 5)
    {
    ActualGrowth = Population[Counter] + MathPercentage;

    Counter++;

    Population[Counter] = ActualGrowth + Population[Counter--];
    }

    for (int i = 0; i < Population.Length; i++)
    {
    Console.WriteLine("Population of 201{0:d}", Years[i]);
    Console.WriteLine(Population[i]);
    }

您输入的数字在增长百分比上将是无限的:

这个也可以帮助你

    while (Counter < 5)
    {
    ActualGrowth = Population[Counter] + MathPercentage;

    Counter++;

    Population[Counter] = ActualGrowth + Population[Counter-1];
    }

    for (int i = 0; i < Population.Length; i++)
    {
    Console.WriteLine("Population of 201{0:d}", Years[i]);
    Console.WriteLine(Population[i]);
    }
于 2012-06-19T00:39:23.187 回答
2

++ 运算符更改变量的实际值,因此WhileCounter++将变量增加 1

-- 运算符的作用相同,这不是您想要在行中执行的操作

Population[WhileCounter] = ActualGrowth + Population[WhileCounter--];

相反,使用WhileCounter - 1,像这样

Population[WhileCounter] = ActualGrowth + Population[WhileCounter - 1];
于 2012-06-18T23:19:13.490 回答
0
WhileCounter++;

Population[WhileCounter] = ActualGrowth + Population[WhileCounter--];

WhileCounter就循环而言,never的值不会改变。在循环体中,您递增WhileCounter并立即递减它,因此条件WhileCounter < 5始终为真。

你也可以写

int WhileCounter = 0;
while(WhileCounter < 5)  
{
    WhileCounter += 1;  // WhileCounter == 1
    WhileCounter -= 1;  // WhileCounter == 0
}

// aint never gunna happen
于 2012-06-18T23:15:09.953 回答
0

您应该阅读以下运算符并了解它们的实际作用:

--

++

于 2012-06-18T23:15:33.607 回答