找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2277|回复: 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;
                  
          }
         
        
  }


}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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;
回复

使用道具 举报

5#
ID:47286 发表于 2021-4-30 23:16 | 只看该作者
if(num2 == 40)
{
    num2 = 0;               
    fuck++;
   
    if(fuck==4)
    {
         fuck=0;
    }
}
回复

使用道具 举报

6#
ID:889094 发表于 2021-5-1 00:24 来自手机 | 只看该作者
不想让它继续+就让if不成立就行了
回复

使用道具 举报

7#
ID:414556 发表于 2021-5-1 22:32 | 只看该作者
if(num2 == 40)
        {
                num2 = 0;               
           fuck++;
           }        
           
        ZERO_MODE(fuck);//这不是没打算让它停么
        
               
        if(fuck == 0)
回复

使用道具 举报

8#
ID:900082 发表于 2021-5-2 12:03 来自手机 | 只看该作者
这个程序就是让LED闪2下吗??
回复

使用道具 举报

9#
ID:702461 发表于 2021-5-2 18:53 | 只看该作者
加条件小于四就可以
回复

使用道具 举报

10#
ID:103131 发表于 2021-5-4 07:40 | 只看该作者
dzbj 发表于 2021-4-30 23:16
if(num2 == 40)
{
    num2 = 0;               

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

使用道具 举报

11#
ID:348041 发表于 2021-5-4 08:23 | 只看该作者
把int 改成char试试
回复

使用道具 举报

12#
ID:861260 发表于 2021-5-4 10:10 | 只看该作者
dzbj 发表于 2021-4-30 23:16
if(num2 == 40)
{
    num2 = 0;               

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

使用道具 举报

13#
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自加一语句
回复

使用道具 举报

14#
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内循环
回复

使用道具 举报

15#
ID:894154 发表于 2021-5-4 13:51 | 只看该作者
难道不是这样吗
         else if(fuck == 4)
          {  
                 
                   fuck = 0;
                     LED1 = 0;
                  
          }
回复

使用道具 举报

16#
ID:103131 发表于 2021-5-4 14:39 | 只看该作者
面具下的狼性 发表于 2021-5-4 10:48
把  
if(num2 == 40)
        {

谢谢大家
回复

使用道具 举报

17#
ID:884042 发表于 2021-5-4 14:43 | 只看该作者
有个简单方法:
unsigned char i;
void main()
{
    for(i=0;i<4;i++)
   {

   }
   while()
   {
    }
}
回复

使用道具 举报

18#
ID:915536 发表于 2021-5-4 15:39 | 只看该作者
只要IF条件不满足, 就会停下来啊.
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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