如何生成for循环

how to generate for loop

你好,我遇到了一个非常简单的问题,我正在尝试用 C# 创建一个控制台程序,它从用户那里获取 3 个输入。开始、停止和步数。

它应该是一个 for 循环,但我真的不知道如何将用户输入放入 for 循环,我尝试将用户输入设为 int,然后将 int 的名称放入 for 循环但它给了我错误。

该程序应该看起来像 "Ovning 1" 站点中的以下程序是瑞典语的,但我希望你们能明白,尝试搜索该站点但从未给出解释。 http://csharpskolan.se/showarticle.php?id=119

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ovning12
{
class Program
{
    static void Main(string[] args)
    {

        Console.WriteLine("Mata in Start");
        int startNummer = int.Parse(Console.ReadLine());

        Console.WriteLine("Mata in Stop");
        int stopNummer = int.Parse(Console.ReadLine());

        Console.WriteLine("Mata in Steg");
        int stegNummer = int.Parse(Console.ReadLine());


        for (int startNummer; startNummer >= stopNummer; startNummer + stegNummer) 
        {
            Console.WriteLine();


        }
    }
}
}

for 循环应该如下所示

for (int i = startNummer; i <= stopNummer; i += stegNummer) 
{
    Console.Write(i + " ");
}

您当前的代码有 3 个错误:

for (int startNummer; startNummer >= stopNummer; startNummer + stegNummer) 
  • 你不能对一个变量进行两次初始化int startNummer; - 那不会编译
  • 你的比较走向了错误的方向(除非你正在使用负步骤)startNummer >= stopNummer
  • 您没有在此处分配计算出的新步骤 startNummer + stegNummer - 它应该是 startNummer += stegNummerstartNummer = startNummer + stegNummer

大部分看起来还不错。但是有几件事没有意义,

for (int startNummer; startNummer >= stopNummer; startNummer + stegNummer);
{
        Console.WriteLine();
}

有一个分号';'在 for 循环的末尾。这结束 for 循环,使下一个花括号语法错误。另外 startNumber >= stopNumber 然后 startNumber + stegNumber 可能根本 运行 它,或者 运行 基于输入的无限循环。

这个 for 循环应该像下面这样吗?

for (int start = startNummer /*have to initialize the start value*/; 
     start < stopNummer; 
     start += stegNummer)
{
        Console.Write(start + " "); //need Console.Write to print all numbers on same line. Console.WriteLine puts each index on its own line
}
static void Main(string[] args)
    {
        Console.WriteLine("Mata in Start");
        int startNummer = int.Parse(Console.ReadLine());

        Console.WriteLine("Mata in Stop");
        int stopNummer = int.Parse(Console.ReadLine());

        Console.WriteLine("Mata in Steg");
        int stegNummer = int.Parse(Console.ReadLine());


        for (int n = startNummer; n < stopNummer; n += stegNummer)
        {
            Console.Write(n + " ");
           Console.Write("{0} ", n); //(Alternative)
        }
    }