找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3468|回复: 17
收起左侧

请教一下C语言i++;有没有办法让他停下来?

  [复制链接]
ID:103131 发表于 2021-4-30 18:16 | 显示全部楼层 |阅读模式
不停地加,我想让他加到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;
                  
          }
         
        
  }


}
回复

使用道具 举报

ID:883167 发表于 2021-4-30 21:00 | 显示全部楼层
然后循环后面加一个条件判断,比如加到4后,然后手动让 它置零就可以了。。
回复

使用道具 举报

ID:88256 发表于 2021-4-30 21:18 | 显示全部楼层
肯定可以停得下来。
程序不完整,不好说什么,你怎么知道加到了1400多?num2又是做什么用的?
i++后加个判断的语句,类似前面的,加到一定数值重新加起,或者跳出循环结束i++
if(num2 == 40)
        {
                num2 = 0;               
           fuck++;
           }
回复

使用道具 举报

ID:213173 发表于 2021-4-30 21:18 | 显示全部楼层
本帖最后由 wulin 于 2021-5-1 05:45 编辑

fuck=++fuck % 5;
回复

使用道具 举报

ID:47286 发表于 2021-4-30 23:16 | 显示全部楼层
if(num2 == 40)
{
    num2 = 0;               
    fuck++;
   
    if(fuck==4)
    {
         fuck=0;
    }
}
回复

使用道具 举报

ID:889094 发表于 2021-5-1 00:24 来自触屏版 | 显示全部楼层
不想让它继续+就让if不成立就行了
回复

使用道具 举报

ID:414556 发表于 2021-5-1 22:32 | 显示全部楼层
if(num2 == 40)
        {
                num2 = 0;               
           fuck++;
           }        
           
        ZERO_MODE(fuck);//这不是没打算让它停么
        
               
        if(fuck == 0)
回复

使用道具 举报

ID:900082 发表于 2021-5-2 12:03 来自触屏版 | 显示全部楼层
这个程序就是让LED闪2下吗??
回复

使用道具 举报

ID:702461 发表于 2021-5-2 18:53 | 显示全部楼层
加条件小于四就可以
回复

使用道具 举报

ID:103131 发表于 2021-5-4 07:40 | 显示全部楼层
dzbj 发表于 2021-4-30 23:16
if(num2 == 40)
{
    num2 = 0;               

用这个也同样停不下来,仍然跑
回复

使用道具 举报

ID:348041 发表于 2021-5-4 08:23 | 显示全部楼层
把int 改成char试试
回复

使用道具 举报

ID:861260 发表于 2021-5-4 10:10 | 显示全部楼层
dzbj 发表于 2021-4-30 23:16
if(num2 == 40)
{
    num2 = 0;               

换成大于等于效果更好
回复

使用道具 举报

ID:77840 发表于 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自加一语句
回复

使用道具 举报

ID:484491 发表于 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内循环
回复

使用道具 举报

ID:894154 发表于 2021-5-4 13:51 | 显示全部楼层
难道不是这样吗
         else if(fuck == 4)
          {  
                 
                   fuck = 0;
                     LED1 = 0;
                  
          }
回复

使用道具 举报

ID:103131 发表于 2021-5-4 14:39 | 显示全部楼层
面具下的狼性 发表于 2021-5-4 10:48
把  
if(num2 == 40)
        {

谢谢大家
回复

使用道具 举报

ID:884042 发表于 2021-5-4 14:43 | 显示全部楼层
有个简单方法:
unsigned char i;
void main()
{
    for(i=0;i<4;i++)
   {

   }
   while()
   {
    }
}
回复

使用道具 举报

ID:915536 发表于 2021-5-4 15:39 | 显示全部楼层
只要IF条件不满足, 就会停下来啊.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表