c++break有个地方不理解
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int diff(char *arry ,int a);
int difft(char *as,int num1,char *aw,int num2);
main()
{
int a,b,c,i,q,w,p;
char arra[4],arrb[6];
for(i=0;i<100;i++)
{
a=i*i*i;
b=i*a;
itoa(a,arra,10);
q=diff(arra ,4);
itoa(b,arrb,10);
w=diff(arrb,6);
if(q&&w!=0)
continue;
else
p=difft(arra,4,arrb,6);
if(p==0)
{
printf("%d ",i );
break;
}
/*这个break放里面和放外面的结果不同是什么原因*/
}
}
int diff(char *arry,int a)
{
int y,i;
for(i=0;i<a-1;i++)
{
for(y=i+1;y<a;y++)
{
if(arry[i]==arry[y])
return 1;
}
}
return 0;
}
int difft(char *arra,int num1,char *arrb,int num2)
{
int i,j;
for(i=0;i<num1;i++)
{
for(j=0;j<num2;j++)
{
if(arra[i]==arrb[j])
return 1;
}
}
return 0;
}
break语句是指提前结束循环、接着执行循环下面的语句,不能用于循环语句和switch语句之外的任何其他语句中。放在里面当满足p==0时提前结束for循环,而放在外面则无论是否满足p==0均
提前结束for循环。
break都是放在for循环里面的,意思是跳出循环,知道到这次的时候直接跳出,不再循环下面的。
一个打印一下就跳出来,一个是跳出for循环
你放if语句里有啥用,该执行的语句还是在啊,放在外面应该就能跳出这一次的for循环