为什么我不能在C#中使用整数作为while循环的条件?
我以这种方式使用while循环时收到错误,我不明白为什么:
int count = 5; while(count--) //here showing an error { Console.WriteLine("Number : {0}", count); }
但是,在C中,代码可以正常工作。 我有点困惑为什么我得到这个错误。 有人可以解释为什么吗
C#没有定义从int
到bool
的隐式转换。 while
循环条件必须是bool
。
你应该使用while(count-- != 0)
代替。
在C#
你有一个bool
类型,它接受True
或False
作为值。 在C
除0
之外的所有内容都为真, 0
表示为空。 所以你可以在C
使用if (1)
但是1
不是C#
的逻辑表达式。
C#不允许从int
到bool(ean)
隐式转换。 你应该明确地这样做:
int count = 5; while(count-- != 0) { Console.WriteLine("Number : {0}", count); }
while循环使用bool
值来确定是继续循环还是退出循环
在您的示例中, count
值为int
,这会导致错误/
简单的重构是这样的:
int count = 5; while (count != 0 ) { count--; Console.WriteLine("Number : {0}", count); }
现在,当计数值为0时,它将打破循环
这将解决它!
while (count-- >= 0)//here showing an error { Console.WriteLine("Number : {0}", count); }