在C语言中,如何通过一个键值的改变使程序从子循环中跳到主函数中。
例子如下,我用最不提倡的goto也不好用,求各位高端技术宅给个明确的答复,必有重谢!while(1){A:if(P3_2==0){count++;}if(count==4...
例子如下,我用最不提倡的goto也不好用,求各位高端技术宅给个明确的答复,必有重谢!
while(1)
{
A:
if(P3_2==0)
{ count++;}
if(count==4)
{count=0;}
while(P3_2==0);
{
if(count==1) {
{
while(1)
{
for(k=0;k<6;k++){
for(j=0;j<1;j++)
{
for(i=0;i<8;i++)
{
CTRL_PORT=select_hc138[k][0];
DATA_PORT=table[k][2*i];
ADDR_PORT=i;
delay();
CTRL_PORT=select_hc138[k][1];
DATA_PORT=table[k][2*i+1];
ADDR_PORT=i;
delay();
}
for(i=8;i<16;i++)
{
CTRL_PORT=select_hc138[k][2];
DATA_PORT=table[k][2*i];
ADDR_PORT=i-8;
delay();
CTRL_PORT=select_hc138[k][3];
DATA_PORT=table[k][2*i+1];
ADDR_PORT=i-8;
delay(); }
}
}
break;
}
}
if(P3_3==0)
{
{
while(1)
{
for(k=0;k<6;k++){
for(j=0;j<1;j++)
{
for(i=0;i<8;i++)
{
CTRL_PORT=select_hc138[k][0];
DATA_PORT=table3[k][2*i];
ADDR_PORT=i;
delay();
CTRL_PORT=select_hc138[k][1];
DATA_PORT=table3[k][2*i+1];
ADDR_PORT=i;
delay();
}
for(i=8;i<16;i++)
{
CTRL_PORT=select_hc138[k][2];
DATA_PORT=table3[k][2*i];
ADDR_PORT=i-8;
delay();
CTRL_PORT=select_hc138[k][3];
DATA_PORT=table3[k][2*i+1];
ADDR_PORT=i-8;
delay(); }
}
}
}
}
if(P3_2==0)
while(P3_2==0);
{ goto A;}
}
}
} 展开
while(1)
{
A:
if(P3_2==0)
{ count++;}
if(count==4)
{count=0;}
while(P3_2==0);
{
if(count==1) {
{
while(1)
{
for(k=0;k<6;k++){
for(j=0;j<1;j++)
{
for(i=0;i<8;i++)
{
CTRL_PORT=select_hc138[k][0];
DATA_PORT=table[k][2*i];
ADDR_PORT=i;
delay();
CTRL_PORT=select_hc138[k][1];
DATA_PORT=table[k][2*i+1];
ADDR_PORT=i;
delay();
}
for(i=8;i<16;i++)
{
CTRL_PORT=select_hc138[k][2];
DATA_PORT=table[k][2*i];
ADDR_PORT=i-8;
delay();
CTRL_PORT=select_hc138[k][3];
DATA_PORT=table[k][2*i+1];
ADDR_PORT=i-8;
delay(); }
}
}
break;
}
}
if(P3_3==0)
{
{
while(1)
{
for(k=0;k<6;k++){
for(j=0;j<1;j++)
{
for(i=0;i<8;i++)
{
CTRL_PORT=select_hc138[k][0];
DATA_PORT=table3[k][2*i];
ADDR_PORT=i;
delay();
CTRL_PORT=select_hc138[k][1];
DATA_PORT=table3[k][2*i+1];
ADDR_PORT=i;
delay();
}
for(i=8;i<16;i++)
{
CTRL_PORT=select_hc138[k][2];
DATA_PORT=table3[k][2*i];
ADDR_PORT=i-8;
delay();
CTRL_PORT=select_hc138[k][3];
DATA_PORT=table3[k][2*i+1];
ADDR_PORT=i-8;
delay(); }
}
}
}
}
if(P3_2==0)
while(P3_2==0);
{ goto A;}
}
}
} 展开
5个回答
展开全部
用个变量做标时不时 当=多少时跳到一个自定义函数,函数在函数里进入主函数
追问
能说的详细一点吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
高端技术宅?你的代码没有注释?还略显凌乱
=左右两边需要留空格
变量的名字可以简单一点吗?
=左右两边需要留空格
变量的名字可以简单一点吗?
更多追问追答
追问
因为是自己编的还没排版呢,见谅啊
追答
我要工作的,没时间帮你看代码。你说出你的问题,倒是可以考虑帮你的。
你这样,我只能认为你是伸手党
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把你的例子再浓缩一下,完了我看看。
追问
while(1){ A: if(P3_2==0){******} {if(count==1) { {******}{ if(P3_3==0) { {******} { if(P3_2==0) { goto A;} }}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用break跳出循环不行么
更多追问追答
追问
跳不出来啊
追答
因为你的键值判断写在了最后那个while(1)的外面,只是是属于 if(P3_3==0) 的里面
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询