从break;中断for循环来看,没有区别.
当data 能被i整除时循环中断.
for(i=2;i<=half;i++) if(data%i==0) break;
是单一循环语句.
for(i=2;i<=half;i++) {
if(data%i==0) break;
其他语句...;
}
是有循环体的循环语句. 当条件尚未满足时,循环体内的其他语句要被执行,直到data 能被i整除时跳出循环体.
如图:
┏━━━━━━━┓
┃for ┃
┃ ┏━━━━━┫
┃ ┃break ;━╋━┓由此处跳转
┃ ┣━━━━━┫ ┃
┃ ┃其他语句;┃ ┃
┗━┻━━━━━┛ ┃
循环外语句;《━━┛
break语句是限定转向语句,通常用在循环语句和switch语句中。
1、当用于switch语句中时,可使程序跳出switch而执行其后的语句,如:
int x, y;
scanf("%d", &x);
switch(x)
{
case 1 : y=2*x; break; // 当x=1时,执行y=2*x,执行完后跳出switch语句,执行 // printf语句
case 2 : y=3*x; break;
case 3 : y=4*x; break;
default : y=x;
}
printf("%d", y);
2、当break用于循环语句时,可使程序跳出当前循环,继续执行后面的程序。如:
int i, x=0;
for(i=0; i<5; i++)
{
x=x+i;
if(i==3)
break; // 当i=3时,跳出break语句,执行printf语句
}
printf("%d", x); // 输出结果为6