完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
我就是写了一个很简单的程序(程序如下),在调试这个程序的时候,我把sheng();函数中第一个if语句的for语句去掉就能执行第二个if语句,为什么加了for循环就没有执行第二个if语句,求大神帮我看看!!
#include #define uchar unsigend char #define uint unsigned int ***it jk=P3^6; //定义我要控制的端口 delay(uint x) //延时 { while(--); } key() {/***********矩阵键盘的程序我就不写了****************/} sheng() //根据扫描的键值执行相应步骤 { if(w==0xee) { delay(10); if(w==0xee) { for(i=10;i>0;i++) { jk=~jk; delay(200); } } if(w==0xed) { delay(10); if(w==0xed) { jk=1; } } } } main() { while(1) { w=key(); sheng(); } } |
|
相关推荐
16个回答
|
|
|
i = 10 ,i > 0 一直成立,i++一直加肯定不会往下走啊
最佳答案
|
|
|
|
|
|
你现在这个程序的含义是在w等于oxee的前提下,w再等于0xed才会执行jk=1,这跟你想要达到的目的一样吗?
|
|
|
|
|
|
|
|
|
|
|
|
for(i=10;i>0;i++)确实是一直执行的,你要好好看看这个语句的执行方式了,即使你改成i--你也看看需要减多少次,不然会差一次的!
|
|
|
|
|
|
可是这个for语句在执行循环次数结束的时候是有停止的啊 |
|
|
|
|
langzitianya 发表于 2016-4-14 07:12 我现在就是只要把for语句 加进去就执行不了 第二个if语句 可是for循环是会停止的 程序中可能是我打错了 |
|
|
|
|
|
|
|
|
|
|
|
为什么都在纠结for语句,而全部忽略了二楼的观点???for语句这么写循环到溢出的话是可以结束的,但是逻辑关系错误了的话是无论如何都无法执行的。
|
|
|
|
|
|
我这边的程序着急打错了,不是for(i=10;i>0;i++),,,而是for(i=10;i>0;i--),,, |
|
|
|
|
|
按照你程序的逻辑来看,2楼说的是对的,这个跟for循环没有关系
|
|
|
|
|
|
是,跟for循环没有关系。
|
|
|
|
|
|
你这像是在发波,是不是延时太短了,执行的效果看不出来。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
怎么没看到w的声明,key函数也没写返回值类型,这程序能通过编译?
|
|
|
|
|
|
你在循环里面设个断点,你看程序进去不,进去了就是你管脚的事。另外P3^6是个复用口,你看设置好着没。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
265 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
789 浏览 0 评论
1306 浏览 2 评论
787 浏览 0 评论
【RA4M2-SENSOR开发板评测】Analogue+Timers综合测试
1587 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16901 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 03:29 , Processed in 1.254322 second(s), Total 100, Slave 84 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3948