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

两重循环,如何跳出外层循环
	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;
     }
}