【问题标题】:Loop and Arrays循环和数组
【发布时间】:2021-02-13 20:57:38
【问题描述】:

我可以有 2 个初始化器、2 个条件、2 个迭代器吗?

for (initializer; condition; iterator){
    body
}

我问这个是因为我想比较 2 个数组

int[] v1 = new int[10];
int[] v2 = new int[10];

for(int i=0; int j=v2.Length; i<v1.Length; j>0; i++; j--)
{
     if(v1[i]==v2[j])
     {
        //do something
     }
} 

【问题讨论】:

  • 是 - 用逗号而不是分号分隔:for(int i=0, int j=v2.Length; i&lt;v1.Length, j&gt;0; i++, j--)
  • 你可以只使用 1 个变量。 if(v1[i]==v2[v2.Length - i]) 或类似
  • @AndrewS 无法编译。

标签: c# arrays loops for-loop


【解决方案1】:

不完全是,您可以声明和初始化多个循环变量,但它们需要具有相同的类型。此外,您不能有多个条件,但您可以通过逻辑运算符将它们组合起来:

for (int i = 0, j = 1; i < v1.Length && j > 0; i++, j++  )
{
    if (v1[i] == v2[j])
    {
        //do something
    }
}

同样有效的是初始化不同类型的早期声明的变量:

int i; double j;
for ( i = 0, j = 1.5; ... )

【讨论】:

    猜你喜欢
    • 2020-10-28
    • 2022-11-29
    • 1970-01-01
    • 2012-07-09
    • 2015-09-03
    • 2018-04-21
    • 2017-07-26
    • 2015-06-26
    相关资源
    最近更新 更多