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

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

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

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

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

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

C#你有一个bool类型,它接受TrueFalse作为值。 在C0之外的所有内容都为真, 0表示为空。 所以你可以在C使用if (1)但是1不是C#的逻辑表达式。

C#不允许从intbool(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); }