请问teacher们这段代码的后一段中excit=1;break等等作用是什么吖
#include
int main() {
int x;
int one, two, five;
int exit = 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个1角加%d个2角加%d个5角得到%d元\n",
one, two, five, x);
exit = 1;
break;
}
}
if ( exit == 1 )
break;
}
if ( exit == 1 )
break;
}
return 0;
}
当最内层循环中找到一个符合条件的结果时,通过这个exit标志量,实现逐个外层循环跳出。也就是说,当exit=1时,希望退出所有循环。
代码有3层循环,break的作用是退出本层循环,所以在最内层循环break之后只是退出最内层的循环,外面1、2 层循环还会继续,所以为了实现最内层if满足后退出所有循环,设置一个标志exit,初始值为0,最内层if满足时将exit值变为1并退出最内层,外层通过exit值判断是否退出