关于C语言的WHILE和IF的有关问题

关于C语言的WHILE和IF的问题
#include  <stdio.h> 
int main() 
{
int lower,upper,sum,slower;
sum=0;
printf("Enter lower and upper integer limits: ");
while(scanf("%d %d",&lower,&upper)==2)

if(!(lower-upper))
break; 
slower=lower*lower;
for(;lower<=upper;lower++) 
sum=sum+lower*lower; 
// printf("The sums of the squares from %d to %d is %d",slower,upper*upper,sum);
printf("The sums of the squares from %d to %d is %d",slower,upper*upper,sum);
printf("\n");
printf("Enter next set of limits: ");
}
return 0; 
}
我想请问下为这个程序中(就是红色的那部分的IF改为WHILE之后,跟着BREAK,不能跳出自循环)
关于C语言的WHILE和IF

------解决方案--------------------
break只能跳出一层循环,你把if改成了while,这个break就只能跳出你改的这个while
------解决方案--------------------
break 只能跳出当前所在的while循环
------解决方案--------------------
不如换goto,随心所欲
------解决方案--------------------
IF是判断语句,WHILE是循环语句,这俩也能互换?

------解决方案--------------------
break是循环控制语句。只能跳出当前循环,也就是最近一层的循环,你把if改成while后,会跳出while(!(lower - upper)但是不会跳出while(scanf("%d %d",&lower,&upper)==2)这个
------解决方案--------------------
引用:
不如换goto,随心所欲

可惜goto不能跳到循环里面啊。
------解决方案--------------------
引用:
Quote: 引用:

不如换goto,随心所欲

可惜goto不能跳到循环里面啊。

可以的吧??
------解决方案--------------------
break是跳出当前循环。你用if的时候 break 就跳出 while(scanf("%d %d",&lower,&upper)==2)这个循环;换成while之后,break跳出的是while(!(lower-upper))这个循环。