问一个程序优化的问题, if...else if...过多如何优化?
下面直接帖代码:
/********************************************************************
函数功能:蠕动泵状态控制函数
入口参数:无
返 回:无
备 注:m_State == 1 ,蠕动泵正转,m_State == 2,蠕动泵反转
sleeptime 为蠕动泵转动时间,m_tSpeed为转速
********************************************************************/
void PumpOperate()
{
if((m_State == 1) && (m_tSpeed == 1))
{
fSendData(1);
Sleep(sleeptime);
ShutPump();}
else if((m_State == 2) && (m_tSpeed == 1))
{
rSendData(1);
Sleep(sleeptime);
ShutPump();}
else if((m_State == 1) && (m_tSpeed == 2))
{
fSendData(2);
Sleep(sleeptime);
ShutPump();}
else if((m_State == 2) && (m_tSpeed == 2))
{
rSendData(2);
Sleep(sleeptime);
ShutPump();}
else if((m_State == 1) && (m_tSpeed == 3))
{
fSendData(3);
Sleep(sleeptime);
ShutPump();}
else if((m_State == 2) && (m_tSpeed == 3))
{
rSendData(3);
Sleep(sleeptime);
ShutPump();}
else if((m_State == 1) && (m_tSpeed == 4))
{
fSendData(1);
Sleep(sleeptime);
ShutPump();}
else if((m_State == 2) && (m_tSpeed == 4))
{
rSendData(4);
Sleep(sleeptime);
ShutPump();}
else if((m_State == 1) && (m_tSpeed == 5))
{
fSendData(5);
Sleep(sleeptime);
ShutPump();}
else if((m_State == 2) && (m_tSpeed == 5))
{
rSendData(1);
Sleep(sleeptime);
ShutPump();}
else if((m_State == 1) && (m_tSpeed == 6))
{
fSendData(6);
Sleep(sleeptime);
ShutPump();}
else if((m_State == 2) && (m_tSpeed == 6))
{
rSendData(6);
Sleep(sleeptime);
ShutPump();}
else if((m_State == 1) && (m_tSpeed == 7))
{
fSendData(7);
Sleep(sleeptime);
ShutPump();}
else if((m_State == 2) && (m_tSpeed == 7))
{
rSendData(1);
Sleep(sleeptime);
ShutPump();}
else if((m_State == 1) && (m_tSpeed == 8))
{
fSendData(8);
Sleep(sleeptime);
ShutPump();}
else if((m_State == 2) && (m_tSpeed == 8))
{
rSendData(8);
Sleep(sleeptime);
ShutPump();}
else if((m_State == 1) && (m_tSpeed == 9))
{
fSendData(9);
Sleep(sleeptime);
ShutPump();}
else if((m_State == 2) && (m_tSpeed == 9))
{
rSendData(9);
Sleep(sleeptime);
ShutPump();}
else if((m_State == 1) && (m_tSpeed == 10))
{
fSendData(10);
Sleep(sleeptime);
ShutPump();}
else if((m_State == 2) && (m_tSpeed == 10))
{
rSendData(10);
Sleep(sleeptime);
ShutPump();}
else if .........
如下省略N(N > 100)组判断条件
这段程序是通过操控面板上面的按键的状态和一个静态文本框中由用户输入的速度参数值来作为判断条件,决定如何传递速度控制参数和转动时间,分别为 rSendData (),和Sleep()函数。由于实际应用时候整个速度参数有1到100,并有正反转情况,那么总共有200组参数,如果采用if else判断,当if else 过多时候,会出现嵌套过深的错误,向大家请教如何做优化!