我对如何为代码进行逻辑思考有点问题。我想做的是让用户键入他们想要的数字数量,然后问他们希望数字序列从哪里开始。然后我会把数字打印出来。因此,如果用户输入7,然后输入4,结果将是4 5 6 7 8 9 10。这是我到目前为止的代码
int userInInt, userIntStart;
Console.Write("How many integers do you want to print? ");
userInInt = Int32.Parse(Console.ReadLine());
Console.Write("What is the first integer you want printed? ");
userIntStart = Int32.Parse(Console.ReadLine());
for(int counts = userIntStart; userIntStart <= userInInt; userIntStart++)
{
Console.WriteLine(userIntStart);
}
在为循环做了这件事之后,我意识到它只会增加起始数字,直到userInInt,这不是我想要的。我花了一段时间试图弄清楚我还需要什么。谢谢
您为变量命名对于理解代码非常重要,并使其更容易思考。userInInt
并不反映变量的用途。
Console.Write("How many integers do you want to print? ");
int count = Int32.Parse(Console.ReadLine());
Console.Write("What is the first integer you want printed? ");
int start = Int32.Parse(Console.ReadLine());
i
经常被用作循环变量,因为在数学中它被用作索引。对于如何形成循环,您有不同的选择。最典型的是
for (int i = 0; i < count; i++)
{
Console.WriteLine(start + i);
}
但您也可以将start
添加到循环变量的起始值和计数中。
for (int i = start; i < count + start; i++)
{
Console.WriteLine(i);
}
你甚至可以增加一个以上的变量:
for (int i = 0; i < count; i++, start++)
{
Console.WriteLine(start);
}
将for循环更改为以下
int userInInt, userIntStart;
Console.Write("How many integers do you want to print? ");
userInInt = Int32.Parse(Console.ReadLine());
Console.Write("What is the first integer you want printed? ");
userIntStart = Int32.Parse(Console.ReadLine());
for(int counts = userIntStart; counts < userIntStart + userInInt; counts++)
{
Console.WriteLine(counts);
}
初始代码的问题是for循环错误,首先应该将初始值分配给counts
,然后应该在第二个参数中提供正确的退出条件,第三个参数是递增步长,即1,请在此处查看for
循环语法。
在代码中,首先需要在增量步骤(++(中使用正确的变量名。其次,请注意,您需要使用一个单独的变量来跟踪整数的数量。在我的例子中,我使用了变量"I"。希望这会有所帮助。
int userInInt, userIntStart;
Console.Write("How many integers do you want to print? ");
userInInt = Int32.Parse(Console.ReadLine());
Console.Write("What is the first integer you want printed? ");
userIntStart = Int32.Parse(Console.ReadLine());
int i = 0;
for (int counts = userIntStart; i<userInInt; counts++,i++)
{
Console.WriteLine(counts);
}
Console.ReadLine();