goto语句

简介: goto语句

1、C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。

goto语句为无条件转向语句,他的一般形式为:

goto 语句标号;


语句标号:用标识符表示,


标识符:由下划线、字母、数字组成,注:不能用数字开头


但是一般不建议使用goto语句,因为它的用法不符合结构化原则,只有在不得已(例如能大大提高效率)时使用。


从理论上 goto 语句是没有必要的,实践中没有 goto 语句也可以很容易的写出代码。

2、goto语句的一般有两个用法:

1.与if语句一起构成循环结构

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//代码1
int main()
{
  char input[10] = { 0 };//输入的字符串
  system("shutdown -s -t 60");//system是一个库函数,可以执行系统命令,
again:
  printf("请注意你的电脑一分钟内关机,如果输入:我是猪,就取消关机\n");
  scanf("%s", input);//数组本身就是地址
  if (0 == strcmp(input, "我是猪"))//strcmp判断两个字符串是否相等,注:不能直接使用==
  {
    system("shutdown -a");//取消关机
  }
  else
  {
    printf("输入错误,你不乖!\n");
      goto again;
  }
  return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
  char input[10] = { 0 };
  system("shutdown -s -t 60");
  printf("请注意你的电脑一分钟内关机,如果输入:我是猪,就取消关机\n");
  while (1)
  {
    scanf("%s", input);//数组本身就是地址
    if (0 == strcmp(input, "我是猪"))//strcmp判断两个字符串是否相等,注:不能直接使用==
    {
      printf("小乖乖,这就取消关机\n");
      system("shutdown -a");//取消关机
      break;
    }
    else
    {
      printf("输入错误,你不乖!\n");
    }
  }
  return 0;
}

代码1和代码2是一样的,运行结果


有兴趣的可以搜索shutdown百度一下

2.从循环体中跳转到循环体外,但在C语言中使用break语句和continue语句也可跳出本层循环和结束本次循环。


最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。

例如:一次跳出两层或多层循环。

多层循环这种情况使用 break 是达不到目的的。它只能从最内层循环退出到上一层的循环。

注:break一次只能跳出一层循环

for (...)
    for (...)
  {
        for (...)
      {
            if ( disaster )
                goto error ;
      }
  }
error :
if ( disaster )
        // 处理错误情况
相关文章
|
2月前
|
人工智能 Python
|
6月前
Break 语句和continue语句的区别
Break 语句和continue语句的区别
117 0
|
6月前
break语句和continue语句的区别
break语句和continue语句的区别
56 0
|
6月前
break语句和continue语句
break语句和continue语句
41 0
|
6月前
|
C++
c++跳转语句goto的介绍
c++跳转语句goto的介绍
77 0
|
程序员 C语言
Continue 语句
Continue 语句
58 0
continue 语句
continue 语句
99 0
continue 语句