为什么我不能在C#中使用整数作为while循环的条件?

时间:2016-03-05 15:41:44

标签: c# .net while-loop boolean conditional-statements

我以这种方式使用while循环时出错,我不明白为什么:

int count = 5;
while(count--)    //here showing an error
{
    Console.WriteLine("Number : {0}", count);
}

但是,在C中,代码可以正常工作。我有点困惑为什么我得到这个错误。任何人都可以解释原因吗?

4 个答案:

答案 0 :(得分:2)

C#没有定义从intbool的隐式转换。 while循环条件必须为bool

您应该使用while(count-- != 0)代替。

C#中,您有一个bool类型,可以接受TrueFalse作为值。在C中,0以外的所有内容均为true,0表示null。因此,您可以在if (1)C,但1不是C#中的逻辑表达式。

答案 1 :(得分:1)

C#不允许从bool(ean)int count = 5; while(count-- != 0) { Console.WriteLine("Number : {0}", count); } 的隐式强制转换。你应该明确地这样做:

<code>

答案 2 :(得分:0)

while循环使用bool值来确定是继续循环还是退出循环

在您的示例中,count值为int,这会导致错误/

简单的重构就是:

            int count = 5;

            while (count != 0 )
            {
                count--;
                Console.WriteLine("Number : {0}", count);
            }

现在,当计数值为0时,它将打破循环

答案 3 :(得分:0)

这将解决它!

Symbol\t2015-01-01\tType\tFloat_Value