标题: 请教一下C语言i++;有没有办法让他停下来? [打印本页]

作者: goldbirderman    时间: 2021-4-30 18:16
标题: 请教一下C语言i++;有没有办法让他停下来?
不停地加,我想让他加到4停下来,可是一直停不下来,一直加到1400多?   我想加到一定的数值停下来

unsigned int  work(void)
{
        unsigned int  fuck;

  while(1)
  {
         
          if(num2 == 40)
        {
                num2 = 0;               
           fuck++;
           }        
           
        ZERO_MODE(fuck);
        
               
        if(fuck == 0)
                {
                        LED1 = 0;
                        
                }
    else if(fuck == 1)
           {
                  LED1 = 1;
           }
        else if(fuck == 2)
          {
                  LED1 = 0;
          }
        else if(fuck == 3)
          {
                LED1 = 1;
          }
         
         else if(fuck == 4)
          {  
                 
                   fuck = 4;
                     LED1 = 0;
                  
          }
         
        
  }


}
作者: 林大侠    时间: 2021-4-30 21:00
然后循环后面加一个条件判断,比如加到4后,然后手动让 它置零就可以了。。
作者: hhdsdy    时间: 2021-4-30 21:18
肯定可以停得下来。
程序不完整,不好说什么,你怎么知道加到了1400多?num2又是做什么用的?
i++后加个判断的语句,类似前面的,加到一定数值重新加起,或者跳出循环结束i++
if(num2 == 40)
        {
                num2 = 0;               
           fuck++;
           }
作者: wulin    时间: 2021-4-30 21:18
本帖最后由 wulin 于 2021-5-1 05:45 编辑

fuck=++fuck % 5;
作者: dzbj    时间: 2021-4-30 23:16
if(num2 == 40)
{
    num2 = 0;               
    fuck++;
   
    if(fuck==4)
    {
         fuck=0;
    }
}
作者: birdzhyli    时间: 2021-5-1 00:24
不想让它继续+就让if不成立就行了
作者: amandv    时间: 2021-5-1 22:32
if(num2 == 40)
        {
                num2 = 0;               
           fuck++;
           }        
           
        ZERO_MODE(fuck);//这不是没打算让它停么
        
               
        if(fuck == 0)
作者: xiaohui888    时间: 2021-5-2 12:03
这个程序就是让LED闪2下吗??
作者: 2473122700    时间: 2021-5-2 18:53
加条件小于四就可以
作者: goldbirderman    时间: 2021-5-4 07:40
dzbj 发表于 2021-4-30 23:16
if(num2 == 40)
{
    num2 = 0;               

用这个也同样停不下来,仍然跑
作者: qweneyu    时间: 2021-5-4 08:23
把int 改成char试试
作者: z164361414    时间: 2021-5-4 10:10
dzbj 发表于 2021-4-30 23:16
if(num2 == 40)
{
    num2 = 0;               

换成大于等于效果更好
作者: 面具下的狼性    时间: 2021-5-4 10:48
把  
if(num2 == 40)
        {
                num2 = 0;               
           fuck++;
           }     
改成下面这样
  if(num2 == 40)
        {
                num2 = 0;
          if(fuck<4)      
           fuck++;
           }     
加入此时fuck值为3,小于4,它就自加一变成4,下一个循环时fuck值为4是等于4的,所以不执行下面的fuck自加一语句
作者: liang45    时间: 2021-5-4 13:31
本帖最后由 liang45 于 2021-5-4 13:41 编辑
goldbirderman 发表于 2021-5-4 07:40
用这个也同样停不下来,仍然跑

用这个是停不下来的,你想让fuck加到4停下来,就要在程序的最后的把
else if(fuck==4)
{        fuck=4;      LED1=0;}



改成

else if(fuck==4)
{        LED1=0;
      while(1);这里进入死循环,fuck一直等于4
}



这个是整个程序只运行一遍

如果改成这个
else if(fuck==4)
{        fuck=0;      LED1=0;
}



fuck就会在0,1,2,3,4内循环

作者: ANT1987    时间: 2021-5-4 13:51
难道不是这样吗
         else if(fuck == 4)
          {  
                 
                   fuck = 0;
                     LED1 = 0;
                  
          }
作者: goldbirderman    时间: 2021-5-4 14:39
面具下的狼性 发表于 2021-5-4 10:48
把  
if(num2 == 40)
        {

谢谢大家
作者: xjx51    时间: 2021-5-4 14:43
有个简单方法:
unsigned char i;
void main()
{
    for(i=0;i<4;i++)
   {

   }
   while()
   {
    }
}
作者: zf1127    时间: 2021-5-4 15:39
只要IF条件不满足, 就会停下来啊.




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1