For循环倒计时不起作用

时间:2015-08-18 09:20:23

标签: c#

如何在一个console.application中使用for循环进行倒计时,该循环从0到-10以2为步进数计数,因此它计为0,-2,-4,-6,-8-10。 我试过的是:

class Program
{
    static void Main(string[] args)
    { 
        for(int i = 0; i == -10;i = i-2)
        {
            Console.Write("{0,2}", i = i-2);
            System.Threading.Thread.Sleep(1000);
        }
        Console.WriteLine("Countdown End");
    }
}

4 个答案:

答案 0 :(得分:1)

重新考虑您的代码以及您真正希望实现的目标

for(int i = 0; i >= -10;i = i-2) 
{
    Console.WriteLine(i); //i already has the value you want to print
    System.Threading.Thread.Sleep(1000);
}
Console.WriteLine("Countdown End");

如果你去

Console.Write("{0}", i = i-2);

您为每个循环计算i = i - 2(loop counter) - 2(WriteLine calculation),第一个除外,其中i将为Console.WriteLine("{0}", i = 0 - 2);

答案 1 :(得分:1)

class Program
{
    static void Main(string[] args)
    { 
        for(int i = 0; i >= -10; i -= 2)
        {
            Console.Write("{0,2}", i);
            System.Threading.Thread.Sleep(1000);
        }
        Console.WriteLine("Countdown End");
    }
}

我改变了循环条件和Console.WriteLine,因为它也改变了i的值。

答案 2 :(得分:0)

在for循环中间的表达式在开头是假的。 只要语句为真,for循环才会起作用。

更改

i == -10

i != -10

修改

你应该试试

i > -10

只是在保存(r)方面。

编辑2:(对用户1666620的信用)

Console.Write("{0,2}", i = i-2);

更改i的值,因此您应该使用

Console.Write("{0,2}", i-2);

代替。 或者只是使用

Console.Write("{0,2}", i);

如果这是您想要的值。

答案 3 :(得分:0)

for (int i = 0; i >= -10; i -= 2)
{
    Console.WriteLine("{0}", i);
}