return:在此位置 直接结束本函数 , 本函数 后面程序不执行。(只能函数中用) break:在此位置 跳出本层循环体或 跳出switch语句(无论层次多深),转去执行 循环体 或 switch语句外 后面程序 continue:在此位置 结束本次循环,即不在执行本次循环后面的程序,转去执行下一轮循环,不跳出循环体。(只能循环体中用) goto:在此位置 无条件转移 到 标号位置 。不主张使用,容易造成程序流程混乱,理解和调试程序困难(好多世界500强企业,在企业编程规范中明确 不准 用)
实验代码:
#include <stdio.h> void test(void); /** ******************************************************************************* * @brief 主 函数 * @param [in] None * @return None * @note ******************************************************************************* */ int main(void) { char c = 1; while(0) { AA: test(); printf("回到main函数\n\n"); while(1); } if(c) { printf("goto 作用:无条件转移到 标号AA: \n\n"); goto AA; } while(1); } /** ******************************************************************************* * @brief 测试 函数 * @param [in] None * @return None * @note ******************************************************************************* */ void test(void) { char a = 3; //改成 4 改变测试条件 char b = 4; //改成 3 改变测试条件 char i; while(1) { if( --a ) { if( --b ) { for(i=0; i<5; i++) { printf("%d for循环:***\n", i); if(i == 3) {printf("%d for循环:break 作用--跳出本层for循环体 \n", i); break;} if(i == 1) {printf("%d for循环:结束本次循环\n", i); continue;} printf("%d for循环:---\n", i); } printf("for循环体 结束\n"); } else { printf("%d while循环b: break 作用--无论层次多深 跳出本层 while 循环体\n", b); break; } printf("%d while循环b:$$$\n", b); } else { printf("%d while循环a: 直接结束test()函数,回到main函数\n", a); return; } printf("%d while循环a:$$$\n", a); } printf("while循环体 结束,死在test()函数中\n"); while(1); }a = 4; b = 3; 时运行结果: a = 3; b = 4; 时运行结果: