请问各位,为什么第十九行注释掉的"if(exti==1)break;"这句话是可有可无的?没有这一句也能从break;直接跳到21行的if(exti==1)break;,但我想不通为什么。谢谢大家。
#include <stdio.h>
int main()
{
int x;
int one,two,five;
int t=0;
int exti=0;
scanf("%d",&x);
for(one=1;one<x*10;one++){
for(two=1;two<x*10/2;two++){
for(five=1;five<x*10/5;five++){
if(one+two*2+five*5==x*10){
printf("%d个一角,%d个两角,%d个五角\n",one,two,five);
t++;
exti=1;
break;
}
// if(exti==1)break;
}
if(exti==1)break;
}
if(exti==1)break;
}
printf("共%d个结果",t);
return 0;
}
因为你17行将exti=1,且18行已经调用了break;这里的break就会将你从for(five=1;five<x*10/5;five++)这个循环里跳出来。
循环都跳出去了,因此19行的这个break,根本就不会执行的。