我在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 ...如果有人知道这个问题的解决方案请分享。
答案 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
的值,因为您已经在每次迭代时更改它。如果你再次更改它,那么你将在每次迭代时跳过一步。