C#循环正数和负数

时间:2014-02-04 16:19:22

标签: c# loops numbers

我需要一个简单的C#程序的帮助。简单但我不知道解决方案。问题出在这里:我需要按顺序循环(或在屏幕上打印)所有数字:2,-3,4,-5,6,-7等,直到它们达到100。 你有什么想法怎么做?现在我做了类似的事情:

for (int i = -2; i <= 100; i += 1)
        {
            Console.WriteLine(i);
        }

但是我不能像我想要的那样让它工作,我知道我在i + = 1部分做错了但我无法弄清楚如何做到这一点!感谢您的支持。

7 个答案:

答案 0 :(得分:5)

您可以在奇数上使用-1多个,因此请使用% operator

for (int i = 2; i <= 100; i++)
{
    int val = i % 2 == 1 ? i * -1 : i;
    Console.WriteLine(val);
}

Demo

答案 1 :(得分:1)

如果我们使用modulo

,那就非常简单了

这些步骤非常直截了当。如果我们注意到它与打印2-100的解决方案相同但是有一点扭曲,对于奇数位置,数字i应该是他的负号。因此解决方案将是相同的。

<强>步骤:

  1. 循环i到100
  2. 对于每次迭代,我们将决定它是奇数还是偶数。
  3. 如果i为偶数,则将其乘以i当然会产生。否则,这意味着它是奇数,因此导致 乘以-1,得minus i
  4. <强>代码

    for (int i = 2; i <= 100; i++)
    {
        Console.WriteLine(i * (i%2 == 0 ? 1 : -1));
    }
    

答案 2 :(得分:1)

for(int i=2;i<=100;++i){
    Console.WriteLine(i % 2 == 1 ? -i : i);
}

答案 3 :(得分:0)

你应该逐个从2迭代到100(是的,所有都是正值) 然后在循环体中,您应该在每次迭代时反转符号(通过乘以“-1”)并在屏幕上打印结果。

答案 4 :(得分:0)

使用按位并发现奇数:

for (int i = 2; i <= 100; i += 1)
{
  int toPrint = i

  if((i & 1)==1)
  {
    // It's odd
    toPrint = -toPrint;
  }

  Console.WriteLine(toPrint);
}

答案 5 :(得分:0)

我们都在学校完成了这项任务:

Enumerable.Range(2, Int32.MaxValue - 1)
          .TakeWhile(i => i <= 100)
          .Select(i => i % 2 == 0 ? i : -i)
          .ToList()
          .ForEach(Console.WriteLine);

答案 6 :(得分:0)

    static void Main(string[] args)
    {
       for (int i = 2; i <= 100; i++)
        {
            if (i % 2 == 1)
            {
                int j = -i;
                Console.WriteLine(j);
            }
            else
            Console.WriteLine(i);
        }
        Console.ReadLine();
    }