我有一些围绕do while循环的代码。
string token;
var count = 0;
var checkDataLength= data.Length == 16;
do
{
count = 0;
token = GenerateToken(data, start, end);
if (checkDataLength)
{
if (Mod120Check(token))
{
count += 1;
}
}
if (IsCompliant(token))
{
count += 1;
}
}
while (count > 0);
return token;
基本上,我正在生成一个令牌,为了使这个令牌有效,必须FAIL Mod120Check和IsCompliant检查。 我无法更改这些方法返回的数据。
虽然上面的代码可以工作,但我觉得很丑陋,想知道有没有更好的方法?
谢谢
count
变量。它根本不是一个计数器!应该使用一个简单的布尔标志。 - Alejandrofor (;;) {}
+break
来修复。显式的break
使得推理流程和调试中断条件变得容易。在这种情况下,您可能也会喜欢使用continue
。一些程序员可能认为for (;;)
太刺耳了,但没有什么比它更能表达永远循环的含义了 :) - Hans Passant