读书人

两重循环怎么跳出外层循环

发布时间: 2013-01-28 11:49:56 作者: rapoo

两重循环,如何跳出外层循环

for(i=0;i<3097;i++)
{
while(j<6) //判断输入的身份证前六位地区码与系统中那个地区码相同
{
a=P[i].num[j]==suiji.ID[j]?1:0;
b+=a;
j++;
}
if(b==6) //b为6时,找到了对应的i,这时候如何跳出for循环呢
{
printf("请确认您录入的身份证号是否为一下地区:");
printf("省份:%s\t",P[i].province);
printf("市:%s\t",P[i].city);
printf("县:%s\n",P[i].county);
break;
}
}

[解决办法]
if(b==6) //b为6时,找到了对应的i,这时候如何跳出for循环呢
{
printf("请确认您录入的身份证号是否为一下地区:");
printf("省份:%s\t",P[i].province);
printf("市:%s\t",P[i].city);
printf("县:%s\n",P[i].county);
i=3097;
break;
}
[解决办法]
引用:
C/C++ code?1234567891011121314151617for(i=0;i<3097;i++) { while(j<6) //判断输入的身份证前六位地区码与系统中那个地区码相同 { a=P[i].num[j]==suiji.ID[j]?1:0; b+=a; j++; } ……


哥,你的break不就是在一层FOR循环里面吗?直接就跳出FOR循环了嘛。你是不是写错了?假设你是这样:
bool bFind = false; //加一个变量
for(i=0;i<3097;i++)
{
while(j<6) //判断输入的身份证前六位地区码与系统中那个地区码相同
{
a=P[i].num[j]==suiji.ID[j]?1:0;
b+=a;
j++;
if(b==6) //b为6时,找到了对应的i,这时候如何跳出for循环呢
{
printf("请确认您录入的身份证号是否为一下地区:");
printf("省份:%s\t",P[i].province);
printf("市:%s\t",P[i].city);
printf("县:%s\n",P[i].county);
bfind = true; // 修改变量值
break;
}

if(bFind) // 外层循环判断
{
break;
}
}

读书人网 >C语言

热点推荐