本帖最后由 kai759630 于 2017-3-7 00:12 编辑
要知道break能用于循环结构中和switch结构中,而continue只能用在循环结构中的,表示提前结束本次循环,然而这里容易混淆的地方是break到底是只退出这个选择结构接着执行循环呢,还是直接退出这个循环体不再执行循环呢?另外这里的exit的功能是什么?这里我用代码给你示范下:#include<stdio.h>
#include<stdlib.h>
void main()
{
int n,i ;//这里n用做选择结构和后面输出提示
int m=0;//m用来记录循环执行了几次
printf("请输入n的值\n");
scanf("%d",&n);
for(i=0;i<8;i++)
{
switch (n)
{
case 0: n=3;break;//当输入的n=0时,n=3,break。
case 1: n=4;break;
case 2: n=5;continue;
case 4: exit(0);
}
m++;
}
printf("执行了%d次\n",m);//看下循环到底执行了多少次以便看出这里break的功能
printf("n=%d",n);
}
这里看到,当输入n=0时,循环体循环了8次,并把3赋值给了n,说明这里的break是只退出这个选择结构接着执行循环,所以才可能执行八次循环(m才能自加八次嘛!)。
这里看到,当输入n=2时,循环体循环了7次,并把5赋值给了n,说明这里continue结束了当次循环,所以本次循环m不需要自加1,再执行循环所以循环了7次。
(由于没截好图,文件发布有限,这里后面不显示任何东西)这里看到,当输入n=4时,整个程序直接退出且不报错,说明这里的exit的功能是正常终止程序。
所以A选项不是错在有break而是由于这个exit(0)的缘故! |