【问题标题】:Is it possible to pass a variable into a for loop?是否可以将变量传递给for循环?
【发布时间】:2020-01-01 23:20:46
【问题描述】:

是否可以初始化“int number”并将用户输入的值传递给它?我想知道是否有一种更简洁的方法可以通过在 for 循环之外初始化 number 来做到这一点。

for (int number = Convert.ToInt16(Console.ReadLine()); number < 10; number++)
       {
           Console.WriteLine(number);
       }

我想做这样的事情,其中​​一个变量在循环外初始化,然后直接提交。 - 但是这似乎不起作用。

int n;
for (n; n<10; n++) 
{ 
     Console.Writeline(n)
}

我知道它可以被分配并传递到循环中,但是是否可以不必这样做?

int n = Convert.ToInt16(Console.ReadLine());
for (int i = n; i<10; i++) 
     Console.Writeline(i);

换句话说,我可以使用int n,而不必将其更改为i吗?

【问题讨论】:

  • 您必须定义从哪个号码开始以及停止在哪个号码上。你不能以 n 开头并以 I 结尾。

标签: c# loops for-loop


【解决方案1】:

这和你的很接近,省略第一部分。

int n = 0;
for (; n < 10; n++) 
{ 
     Console.WriteLine(n)
}

是的,这行得通,刚刚在 jsfiddle (https://dotnetfiddle.net/ZkL4BP) 中尝试过。只要确保n在循环之前被初始化为某个东西,int n就会给出一个变量未初始化的错误。

正如其他人指出的那样,这绝对是一种奇怪的模式,通常您希望您的 for 循环计数器仅在循环期间存在,并对块内的其他变量进行任何操作。但它被编译器接受。

【讨论】:

    【解决方案2】:

    您可以通过省略for 语句的第一部分来做到这一点

    int n = Convert.ToInt16(Console.ReadLine());
    for (; n<10; n++) 
         Console.Writeline(n);
    

    for 语句的某些部分是语句本身,可能包含任意内容 - 包括空语句。

    也就是说,您需要记住,您的变量是在循环内更改的。可读性不好,不推荐。

    【讨论】:

    • 这与 Kevin DiTraglia 的回答没有什么不同,他比你早 10 分钟回答。
    猜你喜欢
    • 2022-01-03
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    • 2021-06-21
    • 2014-10-05
    相关资源
    最近更新 更多