#include<studio.h>
main()
{int i,j,m=1;
for(i=1;i<3;i++)
{for(j=3;j>0;j--)
{if(i*j>3)break;
m*=i*j;
}
}printf("m=%d\n",m);
}
我想问一下为什么这里输出的值是 i*j<3的值 这上面是>3 是因为break?这个指令?吗
break是跳出循环,不再执行break后面的语句,可以用大括号阔起来,把m的赋值语句放在break前面
第一次运行时,I=1,J=3,ij=3,不满足条件 i*j>3,所以不会进入到IF语句中,m没有赋值
第二次运行时,I=1,J=2,ij=2,不满足条件 i*j>3,所以不会进入到IF语句中,m没有赋值
第三次运行时,I=1,J=1,ij=1,不满足条件 i*j>3,所以不会进入到IF语句中,m没有赋值
第四次运行时,I=2,J=3,ij=6,满足条件 i*j>3,所以进入到IF语句中,进入之后直接BREAK跳出循环,M没有赋值,所以保留初始值m=1;