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; 时运行结果: