要求用户打印出他们想要的C#数量

时间:2018-12-03 20:19:51

标签: c# numbers user-input increment

我在逻辑上思考代码的方式有点问题。 我想做的是让用户键入他们想要的数字,然后问他们要从哪个数字序列开始。然后,我将打印出这些数字。因此,如果用户输入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);
}

在执行完for循环后,我意识到它将只是递增起始编号,直到userInInt不再是我想要的。我花了一段时间尝试找出我还需要什么。 谢谢

3 个答案:

答案 0 :(得分:0)

如下更改您的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,然后应在第二个arg中提供正确的退出条件,第三个arg是增量步骤,即1,看看for循环语法here

答案 1 :(得分:0)

为变量赋予的名称对于理解代码很重要,并且使思考起来更容易。 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);
}

答案 2 :(得分:0)

首先在代码中,您需要在增量步骤(++)中使用正确的变量名称。其次请注意,您需要使用一个单独的变量来跟踪整数数量。就我而言,我为此使用了变量“ 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();