C 语言 goto 语句

返回上一级

C 语言中的 goto 语句允许把控制无条件转移到同一函数内的被标记的其它语句。

注意:

在任何编程语言中,都不建议使用 goto 语句。 因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改。 任何使用 goto 语句的程序可以改写成不需要使用 goto 语句的写法。

但是,如果 goto 语句如果用的好,可以达到很精妙的效果

goto 语句语法格式

C 语言中 goto 语句的语法格式如下

goto label;
..
.
label: statement;

label 可以是任何除 C 关键字以外的任何文本,但我们推荐使用一看就懂的 标识符label 可以放在任何位置,我们可以设置在 C 程序中 goto 语句的前面或者后面。

C 语言 goto 语句流程图

C goto 语句

范例: 使用 goto 语句在程序中跳转

/**
 * file: main.c
 * author: 简单教程(www.twle.cn)
 */

#include <stdio.h>

int main ()
{
   // 定义局部变量 cnt 用于计数

   int cnt = 10;


   LOOP:do
   {
      if( cnt == 13 )
      {
         cnt += 1;  //复合赋值运算符
         goto LOOP; //跳过此次迭代,进行下一次迭代 我们会发现输出中没有 13
      }

      printf("cnt 的值: %d\n", cnt);

      cnt++;  // cnt 自增

   }while( cnt < 17 );

   return 0;
}

编译运行上面的范例,输出结果如下

$ gcc main.c && a.out
cnt 的值: 10
cnt 的值: 11
cnt 的值: 12
cnt 的值: 14
cnt 的值: 15
cnt 的值: 16

我们可以使用 continue 语句 来改写上面的范例,避免使用 goto 语句

/**
 * file: main.c
 * author: 简单教程(www.twle.cn)
 */

#include <stdio.h>

int main ()
{
   // 定义局部变量 cnt 用于计数

   int cnt = 10;


   do
   {
      if( cnt == 13 )
      {
         cnt += 1;  // 复合赋值运算符
         continue;  // 跳过此次迭代,进行下一次迭代 我们会发现输出中没有 13
      }

      printf("cnt 的值: %d\n", cnt);

      cnt++;  // cnt 自增

   }while( cnt < 17 );

   return 0;
}

编译和运行上面代码,输出结果如下

$ gcc main.c && a.out
cnt 的值: 10
cnt 的值: 11
cnt 的值: 12
cnt 的值: 14
cnt 的值: 15
cnt 的值: 16

返回上一级

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.