gpt4 book ai didi

c# - 为什么 for 循环初始化中的条件比循环内部更快?

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:53 24 4
gpt4 key购买 nike

我正在做一些优化并发现:

for (int x = -1; x < 2; x++)
{
for (int y = -1; y < 2 ; y++)
{
if (((x * x) ^ (y * y)) != 1)
{
continue;
}
}
}

运行时间是这个的两倍多:

for (int x = -1; x < 2; x++)
{
for (int y = -1; y < 2 && ((x * x) ^ (y * y)) == 1; y++)
{

}
}

这是怎么回事?

目的是避免对角线(-1,-1; -1,1 ...)和原点(0,0)字段

最佳答案

((x * x) ^ (y * y)) != 1 时,第二个代码结束内部循环,而第一个代码仅跳过内部循环的一次迭代。由于他们不做同样的事情,所以比较性能的所有赌注都落空了。

关于c# - 为什么 for 循环初始化中的条件比循环内部更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40473028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com