今天简单介绍一下continue,break,return三个语句在c语言中的用法。
- 顾名思义 continue一词即“继续”的意思,也即不会终止整个循环,只会停止当前循环体内的一次循环,然后继续执行当前循环体内的下一个循环,直至当前循环体结束;
- break一词有破裂之意,即本循环宣告结束,所以要跳出当前循环体,如果本循环外层还有循环,则执行外层循环,一个break语句只能跳出一层循环,如果有多层循环相套,预跳出所有循环需多条break语句逐层跳出;
- return “返回”的意思,即返回到某处,或返回某值。对于带参函数来讲,一般末尾会有 return value;语句,该value值一般用于传递给调用者,这种情况即返回某值;另外,在一个循环体内如果出现 return 语句,则表示停止该函数,返回到调用该函数处执行。
下面看一下简单的代码,就可以对这几个语句有个更清晰的了解了:
//continue 语句 #include<stdio.h> int main() { int i; for(i=0;i<10;i++) { if(i==5) continue; printf("%d",i); } return 0; }
该段代码的运行结果为:
01234678
显然,当i等于5时循环中止一次,继续进行循环体内下次循环,打印678。
//break语句 #include<stdio.h> int main() { int i; for(i=0;i<10;i++) { if(i==5) break; printf("%d",i); } retturn 0; }
该段代码运行结果为:
01234
容易得到,当循环内有break时即退出循环,一旦i等于5,就不再打印5以后的值。
//循环嵌套的情形 #include<stdio.h> int main() { int i,j; for(i=0;i<3;i++) { for(j=0;j<10;j++) { if(i==5) break; printf("%d",i); } printf("\n"); } return 0; }
该段代码运行结果为:
01234 01234 01234
结果表明:在嵌套循环中,循环遇到break语句时,跳出本次循环,继续执行外层循环。
//return语句第一种情形,返回某值 #include<stdio.h> int test() { int a=10; return a; } int main() { printf("a=%d",test()); //调用test函数,打印其返回值 return 0; }
该段代码运行结果为:
a=10
test()函数是一个返回值类型为int型的函数,此函数中用return语句返回该子函数的返回值,可供其他函数调用。调用该子函数的函数就会得到它的返回值。
//return语句第二种情形,返回到某处(出现在主函数中) #include<stdio.h> int test() { int i; for(i=0;i<10;i++) printf("%d",i); } int main() { printf("A"); return;//该位置记为1 test(); //return;//该位置记为2 printf("B"); //return;该位置记为3 return 0; }
该段代码运行结果如下:
当return语句在1处时 A 当return语句在2处时 A0123456789 当return语句在3处时 A0123456789B
该结果表明return出现在主程序中时,会终止整个程序,退出程序的执行。
//return第二种情形,返回到某处(不在主函数) #include<stdio.h> int test() { int i; for(i=0;i<10;i++) printf("%d",i); } int test_return() { test(); return;//标记为1 printf("A");//该句不执行 } int main() { test_return(); printf("C");//1处的return语句返回到此处执行 return 0; }
该段代码运行结果为:
0123456789C
从结果容易看出,在非主函数中遇到return语句,函数会返回到调用该函数的下一个语句的位置进行执行,即不执行printf("A");语句,执行printf("C");语句。
注意:main()函数结尾的 return 0;语句表示main函数的正常退出。