如何将以下代码从if语句更改为switch。是否可以按照下面显示的顺序增加速度[0](0,0,0,1,1,1,2,2,2,2)
变量节点是类型对象。
if (node->speed[0] > system->velocity)
node->speed[0] = pSystem->velocity;
else if (node->speed[0] < pSystem->nVelocity)
node->speed[0] = pSystem->nVelocity;
if (node->speed[1] > pSystem->velocity)
node->speed[1] = pSystem->velocity;
else if (node->speed[1] < pSystem->nVelocity)
node->speed[1] = pSystem->nVelocity;
if (node->speed[2] > pSystem->velocity)
node->speed[2] = pSystem->velocity;
else if (node->speed[2] < pSystem->nVelocity)
node->speed[2] = pSystem->nVelocity;
最佳答案
在比较中没有有意义的方法来生成switch
,但是我将重写如下内容(假设第一行中的“系统”实际上应该是“ pSystem”):
int clamp(int x, int min, int max)
{
if (x < min)
return min;
if (x > max)
return max;
return x;
}
for (int i = 0; i<3 ; ++i)
node->speed[i] = clamp(node->speed[i], pSystem->nVelocity, pSystem->velocity);
旁注:看来您已经切换了“速度”和“速度”的含义。
速度是矢量,具有方向和大小,而速度是标量-速度的大小。