永发信息网

keil不能for循环

答案:2  悬赏:70  手机版
解决时间 2021-04-06 08:05
  • 提问者网友:斑駁影
  • 2021-04-05 07:59
#include
sbit Led1=P0^0;
sbit Led2=P0^1;

void delay(unsigned int i)
{
while(i)
{
i--;
}
}
void main()
{
int i=4;
while(1)
{
P0=0xff;

Led1=0;
for(;i<1;i--)
{
P0=P0<<2;
delay(10000);
}
P0=0xff;
Led2=0;
for(;i<1;i--)
{
P0=P0<<2;
delay(10000);
}
}
}
最佳答案
  • 五星知识达人网友:行路难
  • 2021-04-05 09:35
这for(;i<1;i--) 条件用的不对吧,应该是for(;i>0;i--)
还有,为什么没有初始值呢?为什么要省呢?
虽然前面有一行
int i=4; 这是赋初值了,可这只第一次for循环有效,循环结束后,i=0 了,就作为一次for的初始值了,这能行吗?
别为了偷懒,少写一点,使程序错误,何必呢。
正确写法,每一个for都应该写成
for(i=4;i>0;i--)
全部回答
  • 1楼网友:梦中风几里
  • 2021-04-05 11:13
你是否确定是没有跳出循环而导致的没有进入if嘛?   我觉得可能是其他2个原因: 1. 没有满足if的条件(例如co1和co2都等于0),从而导致的没有进入if语句;  解决方法就是加个else,看看是否进入到else中; 2. 整个程序没有while(1)循环,可能是进入if后,迅速的退出,导致整个程序结束,没有抓取到进入if的瞬间效果; 解决方法就是将main用while(1)循环跑。   希望可以帮到你
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯