4.0、C语言——goto语句

4.0、C语言——goto语句

        C语言中提供了可以随意滥用的goto语句和标记跳转的标号【这里建议大家在写代码的过程中尽量不要使用 goto 语句,在实在没有办法的情况下再去使用】

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

        但是某些场合下 goto 语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程,例如一次跳出两层或多层循环

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

下面是使用 goto 语句的一个例子:

int main() {
again:
	printf("goto again");
	goto again;
	return 0;
}

        运行的结果就是 不断的打印 goto again 陷入这么一个死循环

再举一个例子:

int main() {
	printf("goto again");
	goto again;
	printf("被 goto 跳过去了");
again:
	printf("goto 跳转至此...");
	return 0;
}

        这里 goto 也打乱了我们代码的正常执行顺序,直接跳过了一行代码;所以用了 goto 语句之后会很混乱可能会导致 bug,
        所以我们应该在适合的情景下使用该 goto 语句:         

      

        上图中有三个 for 嵌套循环,如果要跳出最外面那个for至少需要三个 break,但是 goto 语句只用这一句代码就可以直接跳出三层循环

        下面给大家看一个好玩的代码 -> 打开程序执行 -> 提示如果在60内不输入 "取消关机",电脑将自动关机~

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <stdlib.h>	
#include <math.h>
#include <time.h>

int main() {
	char input[20] = {0};
	system("shutdown -s -t 60");
again:
	printf("请注意,你的电脑将在1分钟内关闭,如果输入:取消关机,将终止该命令~ \n 请输入>:");
	scanf("%s",&input);
	if (strcmp(input,"取消关机") == 0) {
		system("shutdown -a");
	}
	else {
		goto again;
	}
	return 0;
}

那么这里也用到了 goto() 函数,虽然说用 while() 循环也能实现

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值