这是交易,我有两个功能,我觉得效率非常低,而且我也确信有更有效的方法来做到这一点。所以" tile"变量是从0到24的int,我需要获得x& y基于那个int。 (tile变量类似于5x5网格中的特定按钮ID)
第一个功能:
if (tile == 0 || tile == 5 || tile == 10 || tile == 15 || tile == 20) x = 0
else if (tile == 1 || tile == 6 || tile == 11 || tile == 16 || tile == 21) x = 1;
else if (tile == 2 || tile == 7 || tile == 12 || tile == 17 || tile == 22) x = 2;
else if (tile == 3 || tile == 8 || tile == 13 || tile == 18 || tile == 23) x = 3;
else x = 4;
第二个功能:
if(tile < 5) y = 0;
else if(tile < 10) y = 1;
else if(tile < 15) y = 2;
else if(tile < 20) y = 3;
else y = 4;
我想我可能已经找到了一种更有效的方式来做第一个,虽然我不能完全确定它是否更有效。
x = tile;
while(x >= 5)
x -= 5;
最有效的方法是什么?
答案 0 :(得分:1)
虽然在性能方面这可能是微不足道的,但在可读性方面肯定有更好的方法。
x = (tile % 5); // modulus
y = tile / 5; // division