我以这种方式使用while循环时出错,我不明白为什么:
int count = 5;
while(count--) //here showing an error
{
Console.WriteLine("Number : {0}", count);
}
但是,在C中,代码可以正常工作。我有点困惑为什么我得到这个错误。任何人都可以解释原因吗?
答案 0 :(得分:2)
C#没有定义从int
到bool
的隐式转换。 while
循环条件必须为bool
。
您应该使用while(count-- != 0)
代替。
在C#
中,您有一个bool
类型,可以接受True
或False
作为值。在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