距离计算器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了距离计算器相关的知识,希望对你有一定的参考价值。

我在C#中创建了一个计算器,该计算器根据用户输入的速度和行进小时数显示行进距离,并显示到列表框的距离,希望它以递增的值显示,但是只是重复计算出的值。例如,我输入10英里的1 MPH,希望列表框显示:

1小时后,距离为1英里。

2小时后,距离为2英里。

3小时后,距离为3英里。

4小时后,距离为4英里。

5小时后,距离为5英里。

6小时后,距离为6英里。

7小时后,距离为7英里。

8小时后,距离为8英里。

9小时后,距离为9英里。

10小时后,距离为10英里。

但是列表框显示:

10小时后,距离为10英里。

10小时后,距离为10英里。

10小时后,距离为10英里。

10小时后,距离为10英里。

10小时后,距离为10英里。

10小时后,距离为10英里。

10小时后,距离为10英里。

10小时后,距离为10英里。

10小时后,距离为10英里。

10小时后,距离为10英里。

private void button1_Click(object sender, EventArgs e)
{
    int hours;
    double distance;
    int speed;
    int count = 1;
    if (int.TryParse(speedTextBox.Text, out speed))
    {
        if (int.TryParse(hoursTextBox.Text, out hours))
        {
            while (count <= hours)
            {
                distance = speed * hours;
                distanceListBox.Items.Add("After hour " + hours
                    + ", the distance is " + distance);
                count = count + 1;
            }
        }
        else
        {
            MessageBox.Show("Incorrect value for hours");
        }
    }
    else
    {
        MessageBox.Show("Incorrect value for speed");
    }
}

private void exitButton_Click(object sender, EventArgs e)
{
    this.Close();
}
答案
您应该在计算中使用count而不是hours,在这种情况下forwhile更实用。

for (count = 1; count <= hours; count++) { distance = speed * count; distanceListBox.Items.Add("After hour " + count + ", the distance is " + distance); }

以上是关于距离计算器的主要内容,如果未能解决你的问题,请参考以下文章

如何减少两行浏览片段之间的距离

光线行进时的 GLSL 伪影

使用从循环内的代码片段中提取的函数避免代码冗余/计算开销

镜面高光取决于相机距离

使用 IATA 代码计算机场之间的距离

OpenCV图像哈希计算及汉明距离的计算