C语言中goto的用法:

简介: C语言中goto的用法:

 目录

 

前言

1.goto语句的缺点:

2.goto语句的结构:

3.goto语句的用法:


前言

goto语句其实在平常中我们 除了学习分支语句和循环语句时,介绍循环语句时,才会知道有goto语句这个用法,那读者可能会问:我们还有学习的必要吗?

答案是显而易见的,正如黑格尔所说的:存在即合理!既然存在,就会有存在的必要!虽然我们现在不会遇到且用到 ,当在搞Linux硬件驱动等的时候,其内核含有较多的goto语句,如果不会且不知道的话,将会导致你无法理解这个的工作原理。因此我们要知道并学会用于它。

1.goto语句的缺点:

之所以老师没有多强调它,以及各大教科书几乎都是寥寥数笔,因为它有一个致命的缺点:一旦滥用goto语句将会导致逻辑混乱,导致系统崩溃等问题!!!

2.goto语句的结构:

again:
      语句;
    goto again;//again可以替换成其他的,这里不要求一定是again

image.gif

3.goto语句的用法:

某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过 程。比如结束多层嵌套的使用

for(...)
    for(...)
   {
        for(...)
       {
            if(disaster)
                goto error;
       }
   }
error:
 if(disaster)
         // 处理错误情况

image.gif

在举一个具体例子便于你的理解:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<Windows.h>
int main(void)
{
  char input[20] = {0};
  system("shutdown -s -t 60");//表示将在60秒后电脑关机
again:
  printf("请注意:你的电脑将在60秒后自动关机,如果输入:不要关机,则取消自动关机\n");
  scanf("%s", input);
  if (strcmp(input,"不要关机") == 0)
  {
    system("shutdown -a");
  }
  else
    goto again;
  return 0;
}

image.gif

image.gif编辑

当然对于自己打字有信心,可以将60改为10,试一试(*^▽^*)

目录
相关文章
|
1天前
|
存储 C语言
c语言scanf函数用法
c语言scanf函数用法
|
2天前
|
C语言
【C语言基础篇】结构控制(下)转向语句break、continue、goto、return
【C语言基础篇】结构控制(下)转向语句break、continue、goto、return
|
7天前
|
程序员 C语言
C语言memcpy()函数用法
C语言memcpy()函数用法
|
7天前
|
C语言
C语言strcpy函数用法
C语言strcpy函数用法
|
21天前
|
存储 C语言
C语言学习记录——联合体(共用体、特点、用法、联合体大小计算)
C语言学习记录——联合体(共用体、特点、用法、联合体大小计算)
19 2
|
1月前
|
编译器 C语言 C++
【C语言】分支和循环 ---- if、switch、while、for、goto语句, 理解getchar和putchar函数
【C语言】分支和循环 ---- if、switch、while、for、goto语句, 理解getchar和putchar函数
26 0
|
1月前
|
存储 Web App开发 编译器
C语言程序设计——int,double,char的用法
C语言程序设计——int,double,char的用法
|
1月前
|
C语言
C语言程序设计——if与else if的区别及用法
C语言程序设计——if与else if的区别及用法
|
1月前
|
Unix Linux 编译器
C语言中EOF的用法
C语言中EOF的用法
20 0
|
1月前
|
C语言
C语言4🔥:运算符,运算符的基本用法
C语言4🔥:运算符,运算符的基本用法
40 0