C#用户输入循环不能正常工作

时间:2014-03-01 15:38:30

标签: c# visual-studio-2010 visual-studio loops for-loop

我在C#中创建程序以从用户输入的数字打印数字,userInput1 = 1和UserInput2 = 10然后打印数字1到10,但是如果userInput1< userInput2然后打印一个递减值,userInput1 = 50和userInput2 = 20然后打印50到20.这是我的代码但由于某种原因它不起作用。

Console.Write("Write a starting vlue: ");
int t1 = int.Parse(Console.ReadLine());
Console.Write("Write an ending value: ");
int t2 = int.Parse(Console.ReadLine());

int i = t1;
if (t1 < t2)
{
    for (i = t1; i <= t2; i--)
    {
        Console.WriteLine(i--);
    }
}

        for (i = t1; i <= t2; i++)
        {
            Console.WriteLine(i);
        }
        Console.ReadKey();
        }
    }
}

当我将第一个数字写为20而第二个数字为1时我没有输出而不是20,19,18,17,16 ...如果有人知道这个问题的解决方案请分享。

1 个答案:

答案 0 :(得分:1)

像这样更改for循环并使用else语句:

if (t1 < t2)
{
    for (i = t1; i <= t2; i++)
    {
        Console.WriteLine(i);
    }
}
else 
{
     for (i = t1; i >= t2; i--)
    {
        Console.WriteLine(i);
    }
}

在第一个循环中,您应该增加i,因为t1小于t2。并且不要更改循环体内i的值,因为您已经在每次迭代时更改它。如果你再次更改它,那么你将在每次迭代时跳过一步。