C语言--break、continue、return和goto

2024-05-01 13:48

本文主要是介绍C语言--break、continue、return和goto,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、break:
    break 语句,它不仅可以跳出“循环体”,还可以跳出switch语句。同时,break 也只能用于这两种情况。break 语句不能用于循环语句和 switch 语句之外的任何其他语句中。
    break是用于永久终止循环。即不执行本次循环中break后面的语句,直接跳出循环。
    不管是for循环,还是while循环,或者是do…while循环,都可以用break 跳出来,但是break只能跳出一层循环。当有多层循环嵌套的时候,break只能跳出“包裹”它的最里面的那一层循环,无法一次跳出所有循环。    
    同样,在多层switch嵌套的程序中,break也只能跳出其所在的距离它最近的switch。
2、continue:
    continue是用于终止本次循环。即本次循环中continue后面的代码不执行,进行下一次循环的入口判断。
3、return:
    return关键字并不是专门用于跳出循环的,return的功能是结束一个函数。 一旦在循环体内执行到一个return语句,return语句将会结束该函数,循环自然也随之结束。与continue和break不同的是,return直接结束整个函数,不管这个return处于多少层循环之内。     
4、goto:
    goto 语句是一种无条件流程跳转语句,goto可以跳出多重循环,标号只是标号,程序到标号位置正常执行。标号仅仅起到一个标识作用,程序顺序执行时,标号仿佛不存在。并不是只有调用了goto标号,然后程序跳到标号处,从而触发标号下边的代码开始运行。    continue和break的区别
        continue语句和break语句的区别是,continue 语句只结束本次循环,而不是终止整个循环。break 语句则是结束整个循环过程,不再判断执行循环的条件是否成立。而且,continue 只能在循环语句中使用,即只能在 for、while 和 do…while 中使用,除此之外 continue 不能在任何语句中使用。
        continue不能在switch中使用,除非switch 在循环体中。此时 continue 表示的也是结束循环体的本次循环,跟 switch 也没有任何关系。
    goto语句建议
        1) 使用goto语句只能goto到同一函数内,而不能从一个函数里goto到另外一个函数里。
        2) 使用goto语句在同一函数内进行goto时,goto的起点应是函数内一段小功能的结束处,goto的目的label处应是函数内另外一段小功能的开始处。
        3) 不能从一段复杂的执行状态中的位置goto到另外一个位置,比如,从多重嵌套的循环判断中跳出去就是不允许的。
        4)应该避免向两个方向跳转。这样最容易导致"面条代码"。
程序测试部分:
    1、break测试程序:

#include<stdio.h>/************************************************************************************ @file             main.c* @auther           BA-li* @version          1.1.1* @data             2018-12-26 16:04:41* @brief            break和continue功能测试函数* @param            none* @retval           none* @attention**********************************************************************************/intmain(void){printf("This is a break/continue/goto/return test!!!\r\n");int i = 0;while (i < 10){i = i + 1;if (i == 5)break;printf("%d  ",i);}return 0;}/** 程序输出结果:****************************************** This is a break/continue/goto/return test!!!* 1  2  3  4******************************************/


    2、continue测试程序:

 #include<stdio.h>/************************************************************************************ @file             main.c* @auther           BA-li* @version          1.1.1* @data             2018-12-26 16:04:41* @brief            break和continue功能测试函数* @param            none* @retval           none* @attention**********************************************************************************/intmain(void){printf("This is a break/continue/goto/return test!!!\r\n");int i = 0;while (i < 10){i = i + 1;if (i == 5)continue;printf("%d  ",i);}return 0;}/** 程序输出结果:****************************************** This is a break/continue/goto/return test!!!* 1  2  3  4  6  7  8  9  10******************************************/


    3、return测试程序:

 #include<stdio.h>/************************************************************************************ @file             main.c* @auther           BA-li* @version          1.1.1* @data             2018-12-26 16:04:41* @brief            return功能测试函数* @param            none* @retval           none* @attention**********************************************************************************/intmain(void){printf("This is a break/continue/goto/return test!!!\r\n");int i = 0;while (i < 10){i = i + 1;if (i == 5)return 0;printf("%d  ",i);}return 0;}/** 程序输出结果:****************************************** This is a break/continue/goto/return test!!!* 1  2  3  4******************************************/

4、goto测试程序:
  

  #include<stdio.h>/************************************************************************************ @file             main.c* @auther           BA-li* @version          1.1.1* @data             2018-12-26 16:04:41* @brief            goto功能测试函数* @param            none* @retval           none* @attention**********************************************************************************/intmain(int argc, char **argv){int i = 1;while(1){printf("while(1) \r\n");while(i++){printf("while(i++) i = %d\n",i);if(i > 3){goto program_exti;}}}program_exti:printf("程序结束\n");return 0;}/**程序输出结果*************************************while(1)*while(i++) i = 2*while(i++) i = 3*while(i++) i = 4*程序结束*************************************/
#include <stdio.h>
int
main(int argv, char ** argc)
{unsigned char a = 2;if (a == 1) {goto test1;} else if (a == 2) {goto test2;} else if (a == 3){goto test3;} else {goto test4;}test1:printf("test1\r\n");test2:printf("test2\r\n");test3:printf("test3\r\n");test4:printf("test4\r\n");printf("random test\r\n");}
/** output result
*******************************
test2
test3
test4
random test
********************************/

 

这篇关于C语言--break、continue、return和goto的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/951859

相关文章

基于Go语言实现Base62编码的三种方式以及对比分析

《基于Go语言实现Base62编码的三种方式以及对比分析》Base62编码是一种在字符编码中使用62个字符的编码方式,在计算机科学中,,Go语言是一种静态类型、编译型语言,它由Google开发并开源,... 目录一、标准库现状与解决方案1. 标准库对比表2. 解决方案完整实现代码(含边界处理)二、关键实现细

如何合理管控Java语言的异常

《如何合理管控Java语言的异常》:本文主要介绍如何合理管控Java语言的异常问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍2、Thorwable类3、Error4、Exception类4.1、检查异常4.2、运行时异常5、处理方式5.1. 捕获异常

C语言中的常见进制转换详解(从二进制到十六进制)

《C语言中的常见进制转换详解(从二进制到十六进制)》进制转换是计算机编程中的一个常见任务,特别是在处理低级别的数据操作时,C语言作为一门底层编程语言,在进制转换方面提供了灵活的操作方式,今天,我们将深... 目录1、进制基础2、C语言中的进制转换2.1 从十进制转换为其他进制十进制转二进制十进制转八进制十进

$在R语言中的作用示例小结

《$在R语言中的作用示例小结》在R语言中,$是一个非常重要的操作符,主要用于访问对象的成员或组件,它的用途非常广泛,不仅限于数据框(dataframe),还可以用于列表(list)、环境(enviro... 目录1. 访问数据框(data frame)中的列2. 访问列表(list)中的元素3. 访问jav

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换