假设我们有 bool 的二维数组,它代表简单游戏的地图。如果单元格被某个游戏的对象占用( false ),则数组的每个单元格都可以设置为 true 。
我们想要在循环中更新关于对象行为的地图。假设(由于某些原因)我们无法仅更新地图的某些区域,我们必须迭代数组中的每个单元格,并在对象更改其位置时否定它的值。
我们知道,在每个数组的更新中,只有很少的变化,但数组很大。现在问题就出现了。 什么是最优的。
(1)这:
for (int i = 0; i < Rows; i++)
for (int j = 0; j < Cols; j++)
{
bool newValue = update(i,j);
arr[i,j] = arr[i,j] != newValue ? newValue : arr[i,j];
}
(2)这个:
for (int i = 0; i < Rows; i++)
for (int j = 0; j < Cols; j++)
{
bool newValue = update(i,j);
if(newValue != arr[i,j])
arr[i,j] = newValue;
}
(3)或者也许这样:
for (int i = 0; i < Rows; i++)
for (int j = 0; j < Cols; j++)
{
arr[i,j] = update(i,j);
}
我认为(1)是最糟糕的解决方案。所以(2)vs(3)。
答案 0 :(得分:0)
否3.没有理由像在#2中那样编写代码。您可以毫无问题地删除if。