学习啦>学习英语>专业英语>计算机英语>

c中goto的用法

时间: 长思709 分享

学习啦在线学习网   下面小编就跟你们详细介绍下c中goto的用法的用法,希望对你们有用。

  c中goto的用法的用法如下:

学习啦在线学习网   break和continue的使用范围比较一致,两都可以用于循环,其中break还可以用于switch。功能上也有一定的相似性,break就相当于退学,continue则相当于跳级。对于break,程序究竟跳到哪儿比较好理解。但是continue究竟跳到哪儿去了,初学者可能有些疑惑,不妨就当它跳到了循环体最后一句语句的后面。

  如果它们处在由多重循环和switch组成的圈圈里,那么它们就对包括它们的最里层起作用。于是,设想一下子跳出多重循环的人可能忘不了goto。

  Break语句不能用于循环语句(如for循环或while循环)和switch语句之外的任何其他语句中。

  Continue语句和Break语句的区别是:Continue语句只结束本次循环,而不是终止整个循环的执行。而Break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。

  引用:从上世纪60年代后期开始,不主张使用goto语句。……所有使用goto的程序都可以改写成不用goto。

学习啦在线学习网   笔记:goto是一个很有争议的语句,语多书本建议少用或不用它,我个人的习惯是坚决不用。不过,至于“上世纪60年代”这个说法,我倒是一直不知道。因为我自己学习BASIC已经是1994年,那时候学的是带行号的GW-BASIC,goto是必须用到的语句。莫非当时我们学校开设的课程居然是落后二十年的内容?

  林锐博士对goto另有看法,他说:“错误是程序员自己造成的,不是goto的过错。goto至少有一处可显神通,它能从多重循环中咻地一下子跳到外面,……就像房子着火了,来不及从楼梯一级一级往下走,可从窗口跳出火坑。……”

学习啦在线学习网   我写的程序目前还没有超越三级循环。从最里层往外跳,如果跳一层,就break,如果跳两层或三层,一是这种可能性很小,二是如果真的碰到了,我就用其它条件来控制外层循环是否继续break,自从1997年进入结构化的程序设计以来,我的确完全抛弃了goto。——VB中的“On Error Goto”除外,出现错误,自然不管在哪一层,都给我跳进错误处理中。

学习啦在线学习网   goto的目标是一个标号,这个标号的起名倒有点意思,因为标号只用于goto,所以它的名字可以与任何变量名以及其它标识符一样而不产生重名。以前的程序是带行号的,所以就“goto 行号”,现在程序不带行号了,但是允许在任何地方加标号。编译器在碰到它们的时候,大概就是凭其后头的冒号来判断这个名字不需要检验合法性。那么,C++中已有的“public:”算不算标号呢?

  为此,我做了个实验:实验内容一是我在类的声明里加入了一行“pub:”,二是我在程序段中加入了一行“public:”。结果发现两都都不能通过编译。也就是说,实验一说明在类定义这样的地方不允许使用标号(也用不着,因为它不在任何函数内部,goto是运行时的事,与编译无关,而且goto不允许跨函数跳越。),实验二说明在程序段中的标号不允许使用保留字。

  下面举例说明:

学习啦在线学习网   #include <stdio.h>

学习啦在线学习网   void main()

  {

  int n, m;

  /*这个循环输出1 2 3 4, 在n是5的时候循环退出*/

学习啦在线学习网   for ( n = 1; n <= 10; n ++ )

  {

学习啦在线学习网   if ( n == 5 )

  break;

  printf( " %d", n );

  }

  printf( "\n" );

学习啦在线学习网   /*这个循环输出1 2 3 4 6 7*/

学习啦在线学习网   for ( m = 1; m <= 10; m ++ )

  {

  /*在m是5的时候没有执行当次循环的其他语句,所以未输出5*/

  if ( m == 5 )

  continue;

  /*在m是8的时候循环跳转到RET处,连End都不会输出,如果是break,还能输出End*/

  if ( m == 8 )

  {

  goto RET;

  }

  printf(" %d",m);

  }

  printf ("End");

  RET:

  return;

  }

c中goto的用法

下面小编就跟你们详细介绍下c中goto的用法的用法,希望对你们有用。 c中goto的用法的用法如下: break和continue的使用范围比较一致,两都可以用于循环,其中break还可以用于switch。功能上也有一定的相似性,break就相当于退学,contin
推荐度:
点击下载文档文档为doc格式

上一篇:c中getline的用法

下一篇:c中include的用法

精选文章

  • c中getline的用法
    c中getline的用法

    下面小编就跟你们详细介绍下c中getline的用法的用法,希望对你们有用。 c中getline的用法的用法如下: getline函数是一个比较常见的函数。根据它的名字我们

  • c中get set的用法
    c中get set的用法

    下面小编就跟你们详细介绍下c中get set的用法的用法,希望对你们有用。 c中get set的用法的用法如下: 面向对象编程的一个规则是:使用户只需要指定对象

  • c中free的用法
    c中free的用法

    下面小编就跟你们详细介绍下c中free的用法的用法,希望对你们有用。 c中free的用法的用法如下: 在C语言的学习中,对内存管理这部分的知识掌握尤其重要

  • c中for的用法
    c中for的用法

    下面小编就跟你们详细介绍下c中for的用法的用法,希望对你们有用。 c中for的用法的用法如下: 在C语言中,for语句使用最为灵活,它完全可以取代 while 语

537183