C语言是按顺序执行语句的语言——一个接一个。即使它有条件语句或循环语句,程序的流程也是自上而下的。没有顺序流的随机跳转或跳转。但我们的程序是为了满足任何现实世界的需求,一个接一个地执行永远不会很直接。在某些情况下,我们必须偏离代码的正常顺序流,必须跳转到下一个语句集执行。这可以通过使用break、continue和goto语句来实现。

Break语句用于在没有任何条件的情况下停止代码的正常执行,它将跳出当前执行循环。我们可以使用条件来检查是否必须中断,但这些条件不是break语句的一部分。我们可以用if语句。例如:

  1. #include<stdio.h>
  2. int main(){
  3.  
  4. int num=;
  5. while(){
  6.  
  7. printf("%d",num++);
  8. if(==num){
  9. break;
  10. }
  11. }
  12. return ;
  13. }

当我们执行循环时,为了输出前15个自然数,我们必须给一个判断 跳出这个死循环,当if num ==16;成立时,break;直接跳出这个while循环

同样的的方法   break也来中断for  或do  while   循环

这个break语句也用于switch语句。由于switch语句在执行匹配的case语句之后不会中断执行,所以我们必须显式地使它中断。通过break执行。

continue类似于break语句,但是它不会跳出循环,而是停止执行当前迭代的循环体内部的set指令,并跳转到下一个迭代的循环体。

例如

  1. #include<stdio.h>
  2. int main(){
  3.  
  4. for (int num=;num<;num++){
  5.  
  6. if(==num){
  7. continue;
  8. }
  9. printf("%d\n",num);
  10. }
  11. return ;
  12. }

当执行的if语句为true时,continue执行到for循环的表达式3  num++  跳过了打印3的语句  执行下一次循环

在例如

  1. #include<stdio.h>
  2. int main(){
  3. int i=;
  4. for(;i<=; ){
  5. if(i%==){
  6. printf("%d",i);
  7. }else{
  8. continue;
  9. }
  10. i++;
  11. }
  12. return ;
  13. }

这个只打印一个0;当i=1;执行continue跳转到表达式3 ,此时表达式为true  程序一直执行,但只打印一个0;

同样  continue 用在while ;do  while;中

Continue语句来中断当前执行并继续下一组迭代

goto  语句

该语句是无条件跳转语句。它可以在程序的任何地方使用,以便从当前执行跳转到代码中的其他行。一旦跳转到其他行,它将继续从那里依次执行代码。它不能返回到以前的执行行。为了表示它必须跳转的那条线,我们给这条线标上标签。goto语句的一般语法为:

goto   标号;

跳转标签可以在代码中的任何位置。要么在goto语句之前,要么在goto语句之后。标签存在于何处并不重要。

这种跳跃是无条件的。通常我们使用goto语句来处理错误。但这将降低代码的可读性,并给查看代码的人带来困惑。因此,始终建议在代码中减少goto语句的使用。并且会使程序执行起来相当混乱,cpu 需要不停的进行跳转,效率较低,因此在开发的程序的时候慎用。

return

这个跳转语句通常用于函数的末尾,以结束或终止带有或不带值的语句。它将控制从调用函数返回到主函数(主函数本身也可以有一个返回)。

需要考虑的重要一点是,return只能用于使用返回类型声明的函数,如int、float、double、char等。使用void类型声明的函数不返回任何值。此外,函数返回与声明的数据类型相同的值。下面是一个简单的例子,展示return语句是如何工作的。

  1. #include <stdio.h>
  2. char func(int ascii)
  3. {
  4. return ((char)ascii);
  5. }
  6. int main()
  7. {
  8. int ascii;
  9. char ch;
  10. printf("Enter any ascii value in decimal: \n");
  11. scanf("%d",&ascii);
  12. ch=func(ascii);
  13. printf("The character is : %c\n",ch);
  14. return ;
  15. }

在这个程序中,我们有两个具有返回类型的函数,但是只有一个函数返回值[func()],而另一个函数只是用来终止函数[main()]。函数func()返回给定数字的字符值(这里是65)。我们还看到func()的返回类型为char,因为它返回一个字符值。
函数的返回值为零,因为main的返回类型为int,所以这里必须有一个返回值。

跳转语句 break;continue; return; goto 区别用法的更多相关文章

  1. break,continue,return的区别

    break,continue,return的区别 break 当break语句用于循环语句时,会终止执行循环,并执行循环后代码(如果有的话). function main() { for(var i ...

  2. 有关于break,continue,return的区别和代码分析

    今天,用代码和结果直接解释break,continue,return的区别 1.break代码 public static void breakTest() { //break的讲解 for(int ...

  3. 退出循环break,continue,return,goto分析

    /* 在循环中间设置单个或者多个退出点,可以使用的语句有:break语句.continue语句.goto语句. return */ (1)break :break语句语句用于循环或 switch 语句 ...

  4. break,continue,return 的区别

    (1)break 跳出当前循环体 (2)continue 跳过当前循环体continue后面的代码,继续执行下一个循环 (3)return 和循环没关系,就是跳出该函数

  5. 跳转语句—break,continue,goto

    #define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h&g ...

  6. Java中 break continue return 的区别

    1.break break :跳出当前循环:但是如果是嵌套循环,则只能跳出当前的这一层循环,只有逐层break才能跳出所有循环: ; i < ; i++) { ) { break; // 在执行 ...

  7. break,continue,return的区别 x

    这三个东西特别坑,一定要记准了!! 1)break     直接跳出当前的循环,从当前循环外面开始执行,忽略循环体中任何其他语句和循环条件测试.他只能跳出一层循环: 注意:如果你的循环是嵌套循环,那么 ...

  8. 【C#】 break continue return 的区别

    static void Main(string[] args) { Console.WriteLine("使用break退出循环"); ; i < ; i++) { ) { ...

  9. js中(break,continue,return)的区别

    break 一般用于跳出整个循环(for,while) continue  跳出本次循环,进入下一次循环 return 只能出现在函数体内,一旦执行return,后面的代码将不会执行,经常用retur ...

随机推荐

  1. vue 路由传参的三种方法

    API在这里  https://router.vuejs.org/guide/essentials/navigation.html 第一种传参 通过路由属性中的name来确定匹配的路由,通过param ...

  2. Wireshark 用户指南(3.1.0)

    目 录 Preface 序 1. Foreword 前言 2. Who should read this document? 谁适合读该文档? 3. Acknowledgements 致谢 4. Ab ...

  3. M有SQL删除数据库提示Error dropping database (can't rmdir './db_test', errno: 39)

    1.执行ps aux | grep mysql,查看mysql的data目录,比如结果是--datadir=/var/lib/mysql.2.进入data目录,删除以该数据库为名字的文件夹.cd /v ...

  4. Go 语言入门(一)基础语法

    写在前面 在学习 Go 语言之前,我自己是有一定的 Java 和 C++ 基础的,这篇文章主要是基于A tour of Go编写的,主要是希望记录一下自己的学习历程,加深自己的理解 Go 语言入门(一 ...

  5. Xgboost建模

    xgboost参数 选择较高的学习速率(learning rate).一般情况下,学习速率的值为0.1.但是,对于不同的问题,理想的学习速率有时候会在0.05到0.3之间波动.选择对应于此学习速率的理 ...

  6. maven报错解决

    maven-resources-plugin prior to 2.4 is not supported by m2e. Use maven-  resources-plugin versio < ...

  7. SQL-W3School-函数:SQL MIX() 函数

    ylbtech-SQL-W3School-函数:SQL MIX() 函数 1.返回顶部 1. MIN() 函数 MIN 函数返回一列中的最小值.NULL 值不包括在计算中. SQL MIN() 语法 ...

  8. 浅析angular,react,vue.js jQuery-1

    作者:尚春链接:https://www.zhihu.com/question/38989845/answer/79201080来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出 ...

  9. web自动化-selenium+Chrome驱动国内下载地址+驱动对应Chrome版本号

    selenium各版本下载地址 http://selenium-release.storage.googleapis.com/index.html 国内下载:http://npm.taobao.org ...

  10. 123457123456---熊猫宝贝连数字游戏(儿童连数字)--com.threeObj03.shuziLink

    熊猫宝贝连数字游戏(儿童连数字)--com.threeObj03.shuziLink