为了账号安全,请及时绑定邮箱和手机立即绑定

error C171: 'break': missing enclosing loop什么意思?

error C171: 'break': missing enclosing loop什么意思?

扬帆大鱼 2022-06-03 07:03:29
这个程序是说每次按下k1时递增点亮一只led,全亮时再按下则再次循环开始,k2按下后点亮上面4只led,k3按下后点亮下面4只led,k4按下后关闭所有led。程序如下:#include<reg51.h>#define uchar unsigned char#define uint unsigned intvoid delayms(uint x){uchar t;while(x--){for(t=0;t<120;t++);}}void main(){uchar k,t,key;P0=0xFF;P1=0xFF;while(1);{t=P1;if(t!=0xFF){delayms(10);//再次检查按键if(t!=P1){continue ;}key=~t>>4;k=0;while(key!=0){k++;key>>=1;}switch(k){case 1: if (P0==0x00) P0=0xFF;P0<<=1;delayms(200);break;case 2: P0=0xF0; break;case 3: P0=0x0F; break;case 4: P0=0xFF;}}}}编译时显示:Build target 'Target 1'compiling Text3.c...TEXT3.C(26): error C171: 'continue': missing enclosing loopTarget not created回 做而论道 :改成break编译时成了TEXT3.C(26): error C171: 'break': missing enclosing loop
查看完整描述

3 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

while(1);
{
t=P1;
if(t!=0xFF)
{
delayms(10);
//再次检查按键
if(t!=P1)
{
continue ;
}
你的while(1)后面有分号,说明是死循环,continue是要在while中才可以的,把分号去掉试一下


查看完整回答
反对 回复 2022-06-06
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

把 continue 改为 break,试试看。
-------------------------
看出来问题了。
在 if(t!=P1)
{ continue ;
}
结构的外层,还是个
if(t!=0xFF)
{
delayms(10);
结构。
不是while(1)或其它循环结构,所以不能用continue语句。

查看完整回答
反对 回复 2022-06-06
?
喵喔喔

TA贡献1735条经验 获得超5个赞

continue表示退出本次循环。

编译时报错,请检查是否存在以下问题:

  1. continue后面是否缺少分号?

  2. continue是否出现在循环结构(for、While等)内?


查看完整回答
反对 回复 2022-06-06
  • 3 回答
  • 0 关注
  • 2544 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号