return, break, continue, goto 区别 和 作用 含实验代码验证

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

猜你喜欢

转载自blog.csdn.net/weixin_46672094/article/details/107120624