定义循环上限的异或魔术有什么意义?

What's the point in this xor magic defining the upper bound of a loop?

我在没有任何评论的情况下偶然发现了这段代码:

int delay = 5;
int maxDelay = 5 * (3 ^ 5); // << what's this xor magic?
while( Something && delay < maxDelay ) {
    Thread.Sleep( delay );
    delay *= 3;
}

3 ^ 5 有什么意义?那是“3 xor 5”,也就是六,没有什么有趣的东西,比如 Int32.MaxValue 的三分之一。为什么不直接写 6 呢?我想它必须与这样一个事实有关,即结果随后乘以 5,并且在每次迭代中该值也乘以 3

这是一些众所周知的模式吗?它有什么作用?

他的意思是 Math.Pow(3, 5)^ 不是幂运算符(C# 中不存在)。这是一个错误。

这是有道理的,因为在循环中他正呈指数增长 delay。所以指数上限是有道理的。

我认为这种风格很糟糕,即使它奏效了。循环将 运行 的频率并不明显。他应该使用普通的 for 循环并在循环内重新计算 delay 而不是 运行 沿着循环递增地计算它。