-1

我正在尝试在 C# 中创建一个简单的数组示例,它遍历数组并仅显示大于或等于 2 但小于 4 的值。

在 if 语句中,我不确定如何最好地在迭代函数中制定两部分语句。这是我的例子,它显然没有做任何事情: else if (array[i] >= 2 array[i] <4)

我正在尝试创建的完整代码:

int[] array = new int[5];

            array[0] = 1;
            array[1] = 2;
            array[2] = 3;
            array[3] = 4;
            array[4] = 5;

            for (int i = 0; i < array.Length; i++)
            {
                if (array[i] >= 4)
                {
                    Console.WriteLine(array[i]);
                }
                else if (array[i] >= 2 array[i] <4)
                {
                    Console.WriteLine(array[i]);
                }
                else
                {}

            }
            Console.ReadKey();

寻找有关如何最好地创建此功能的建议。

4

4 回答 4

5

您可以在一个语句中做到这一点:

for (int i = 0; i < array.Length; i++)
{
    if (array[i] >= 2 && array[i] < 4)
    {
        Console.WriteLine(array[i]);
    }
}
于 2015-02-09T19:05:43.993 回答
4

LINQ 是你的朋友

var selected = array.Where(x => x>= 2 && x < 4);

如果你真的想要一个带有控制台 IO 的衬里

array.Where(x => x>= 2 && x < 4).ToList().Foreach(x=>Console.WriteLine(x));
于 2015-02-09T19:08:44.840 回答
1

使用条件 AND 运算符( &&)

else if (array[i] >= 2 && array[i] <4)
于 2015-02-09T19:05:51.823 回答
0

正如其他答案所提到的,您缺少条件 AND 运算符 (&&)。

使用它会改变你的

else if (array[i] >= 2 array[i] <4)

else if(array[i] >= 2 && array[i] < 4)

但是,您可以使用当前代码做得更好。由于您在您的和您的中执行相同的操作,并且您正在与连续比较进行比较(即:2、3、4 等返回 true)。您可以将其进一步简化为:ifelse ifint

for (int i = 0; i < array.Length; i++)
{
    if(array[i] >= 2)
    {
         Console.WriteLine(array[i]);
    }
}
于 2015-02-09T19:27:34.130 回答