未知的while while语句
本文关键字:while 语句 未知 | 更新日期: 2023-09-27 18:06:37
我看到一些人的代码是这样的:
while (!(baseType == typeof(Object)))
{
....
baseType = baseType.BaseType;
if (baseType != null)
continue;
break;
} while (baseType != typeof(Object));
while(...) {...} while(...)
语句是什么?
下面是等效代码吗?
while (baseType != null && baseType != typeof(Object))
{
....
baseType = baseType.BaseType;
}
没有while() ... while();
语句,所以它实际上是两个while语句,如:
当它们具有相同的条件时,就像在你的例子中一样,第二个是无用的。
编辑:实际上,做了一些测试,我意识到它实际上是两个循环,比如:
while(...) { ... }
while(...);
一行中有两个while语句。第二个可能会以无限循环结束,因为第一个会一直运行,直到第一个条件为真或baseType变为null。然后第二个循环开始:
while (baseType != typeof(Object));
如果baseType没有被其他线程更改,则循环不会终止。因为第一个循环检查相同的条件,所以第二个循环永远不会运行,除非baseType为null。
你的代码是不完全相同的,因为第一个代码打破循环,如果baseType为null,然后在无限循环结束。我更喜欢你的代码,清晰多了。尽量避免continue和break