zoukankan      html  css  js  c++  java
  • break,continue,return的区别

    break,continue,return的区别

    最近总使用到这3个关键字,所以想总结一下他的用法. 
        
    1)break     直接跳出当前的循环,从当前循环外面开始执行,忽略循环体中任何其他语句和循环条件测试。他只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出. 
        
    2)continue     也是终止当前的循环过程,但他并不跳出循环,而是继续往下判断循环条件执行语句.他只能结束循环中的一次过程,但不能终止循环继续进行.     

    3)return 语句可被用来使 正在执行分支程序返回到调用它方法。(费解)

    return表示中止当前函数的运行,并将操作权返回给调用者。    
    如果是在main函数中,表示将操作权返回给操作系统。    

       
      return不是必须要返回一个值。    
      void   func(void)    
      {    
      ......    
      ......    
      return;    
      }    
       
       
      当然,就算不写return,在函数执行完毕后也会返回操作权给调用者。写return是一种清晰的风格,可以防止一些意外的错误。所以书上只说应该写,而不是必须写。  
      如果符合某个条件要退出的话,可以用return返回,否则可以不写这句代码的,当程序执行到“}”时会自动返回,这个问题其实你自己到机器上试一下就知道了。不过作为一个良好的编程习惯,每个函数都有返回语句倒是对的,这样更有可读性,并利于程序的维护~~~~

     

    return   指令一个是返回一个指定数据给主调函数,  

    另外的一个作用就是   结束   所在函数的执行   ...

      

     

    子函数中的运算是不能改变main()中已经定义的变量
    int add(int a, int b)
    {
    int c;
    c=a+b;
    }
    main()
    {
    int a=1,b=2, c=0;
    add(a,b);
    printf("/nc=%d/n", c);
    }
    你看看 最后结果还是c=0;
    因为计算机执行一个程序的时候 他只看到main();
    他十分忠诚的 从main()的第一句 一直执行到最后一句 ;
    中间的那个 add()调用;
    这时main()函数被挂起 ;
    也就是停止运行 系统会把main()放在一块内存x中 ;
    这时 系统会把一片内存y划分给add()函数;
    也就是说 main()中的abc;和add()中的abc;
    并不是同一个东西;
    他们只是在数值上相等罢了;
    系统首先把a;b;的值传给add;
    然后运行;
    c=3;
    然后系统没有发现add中有return;
    也就是 子函数做完了运算;
    并没把内存y中的结果送给main();
    这时候 add运行结束;
    系统唤醒内存x中的main();
    开始运行下一句 这时候 ;
    add函数做的一切 都是白干了;
    他并没有把他的结果上交给main()函数;
    所以c仍然是0;
    add(int a, int b)
    {
    int c;
    c=a+b;
    return c;
    }
    main()
    {
    int a=1, b=2, c=0;
    c=add(a,b);
    printf("/nc=%d/n",c);
    /*还可以这样写*/
    printf("/nc=%d/n",add(a,b));
    }
    想要通过子函数来改变main()中的东西;
    有两个方法:1 return ; 2 通过指针;
    这里 指针我就不说了 到了c#就没有指针了 我是学c的 才大一 ;
    我们用的最多的是指针;一般不用return ;

  • 相关阅读:
    牛客IOI周赛17-提高组 卷积 生成函数 多项式求逆 数列通项公式
    6.3 省选模拟赛 Decompose 动态dp 树链剖分 set
    AtCoder Grand Contest 044 A Pay to Win 贪心
    5.29 省选模拟赛 树的染色 dp 最优性优化
    luogu P6097 子集卷积 FST FWT
    CF724C Ray Tracing 扩展欧几里得 平面展开
    5.30 省选模拟赛 方格操作 扫描线 特殊性质
    5.29 省选模拟赛 波波老师 SAM 线段树 单调队列 并查集
    Spring main方法中怎么调用Dao层和Service层的方法
    Bug -- WebService报错(两个类具有相同的 XML 类型名称 "{http://webService.com/}getPriceResponse"。请使用 @XmlType.name 和 @XmlType.namespace 为类分配不同的名称。)
  • 原文地址:https://www.cnblogs.com/roger0212/p/4436739.html
Copyright © 2011-2022 走看看