在控制电机走动,如果1号灯灭,2号灯亮的时候电机就停止,其余情况电机都要走动,其余情况包括一开始的1号灯灭,2号灯也灭(需要走动),还有走动一段距离后的1号灯亮,2号灯也亮的情况(这种情况电机仍要走动)到最后1号灯灭,2号灯亮就要求电机停止了。我代码这么写,怎么不对,在定时器里面写: if(1灯灭)
{
     if(2灯灭)
         电机走;
     else   //2灯亮
         关闭定时器;
 
}

else
{  
      电机走;
              }  
我设断点跑的过程是一开始它认为1灯灭,2灯灭,然后执行电机走,接着就去执行else的2灯亮的关闭定时器,这个定时器我是在按钮里触发的,我再点一次按钮又是执行上面这个过程,当跑到1灯亮时候,它就去执行最下面的else电机走了,当1灯再灭时候就关闭定时器也就是停止走动,后面的步骤好像就正确,前面为什么会去执行else的2灯亮的关闭定时器这个动作呢,明明2灯还没亮的啊?请大虾们帮忙改改,谢谢。

解决方案 »

  1.   

    你2个灯的开关肯定是一次一次发过来的
    比如 你现发1号灯灭信号. 这段程序执行完后.
    又发了2号灯亮的信号. 这样if语句不成立,就走到else里了
    if( 1灯灭 && 2灯亮 )
    {
    //电机走
    }
    else
    {
    //电机走
    }
      

  2.   

    就像2楼的,只有一种情况电机停,
    if(此情况)
    else(彼情况)
      

  3.   

    if( 1灯灭 && 2灯亮 )
    {
    //电机停止
    }
    else
    {
    //电机走
    }
      

  4.   

    if( 1灯灭 && 2灯亮 ) 

    //电机停止 

    else 

    //电机走 
    }
    我之前试过这样,也不行。
      

  5.   


    if( 1灯亮 && 2灯灭 )
    {
       //电机停;
    }
    else
    {
      //电机走;
    }或if(1灯灭) 

        if(2灯灭)
        { 
            电机走; 
         }
        else  //2灯亮 
          {
        // 关闭定时器;
        // 电机停; 
          }} 
    else 

        //电机走; 
     }