c语言中如何让while(1)下的一个程序在条件满足时(条件保持不变)只执行一次,不要反复的执行

2025-02-27 22:54:06
推荐回答(1个)
回答1:

  while(1)	  //while循环语句 1就是真(条件成立),0就是假(条件不成立)
             //while(1) 永远都是真,如果内部没有跳出语句,那就是个死循环。
   {
       //car_in
  if(car_in==0)  //   if条件判断语句 (car_in=0,就是p1^0端口低电位时)
  {
     ms_delay(10); //延时消抖 后再次判断条件是否成立
     while(!car_in);  //判断按键完全释放?
      num--;  //条件成立,总数减1,也就是99-1

       }
       //car_out
        if(car_out==0)//    if条件判断语句 (car_out=0,就是p1^1端口低电位时)
   {
        ms_delay(10); //延时消抖 后再次判断条件是否成立
while(!car_out); //判断按键完全释放?
 num++;    //条件成立,总数加1,也就是99+1
}

//
if(num>99)   //判断总数 num是否大于99
{
  num=99;   //如果总数num大于99,总数num赋值99,就是最大值就是显示99
 }
       else if(num<0)  //判断总数 num是否小于0
 
 {
 
   num=0;  //如果总数小于0,总数num赋值0,就是最小值就是显示0
 }

 display(num);// 显示总数
}

//if(car_out==0)//    if条件判断语句 (car_out=0,就是p1^1端口低电位时)
  {
       ms_delay(10); //延时消抖 后再次判断条件是否成立
if(car_out==0)//你这里的方法不妥当。单片机处理速度很快,这样肯定会一按下去判断很多                           //次了,我这上面这里做了小修改,你试试
{
num++;   //条件成立,总数加1,也就是99+1
}
}