各位好
最近在寫一組根據速度判斷該亮指示的功能
由於速度和距離會形成一張表格並表格中會有對應值
ex
SPEED1 SPEED2 SPEED3 ... SPEED10
V1 A11 A12 A13
V2 A21 A22 A23
V3 A31 A32 A33
.
.
.
V10
如果以判斷式if(V1<V<V2){} else if(V2<V<V3)....這種寫法
太過冗長不漂亮(功能是可以達到沒錯),且執行速度多少會有影響(我有至少100組要判斷)
想請教有無更好更精簡、執行更快的寫法
所有範圍都幫你照顧到了,該做的事就放在handler
內吧
int V1 = 100, V2 = 200, V3 = 300;
int V[3] = { V1, V2, V3 };
const int length = sizeof(V) / sizeof(V[0]);
void handler(int i) {
switch (i)
{
case 0:
printf("0 < V <= %d\n", V[i]);
break;
case length:
printf("%d < V\n", V[i - 1]);
break;
default:
printf("%d < V <= %d\n", V[i - 1], V[i]);
break;
}
}
int main()
{
int currentV = 200;
int i = 0;
for (i = 0; i < length; i++) {
if (currentV - V[i] <= 0) {
break;
}
}
handler(i);
system("PAUSE");
}