初识C语言:goto语句使用详解

目录

1.前言

2.具体使用


1.前言

在日常C语言编程中似乎很少用到goto语句,这是因为break、continue、return语句(本质上其实都是受了限制的goto语句)足以应付需要使用goto语句的大多数情况。

尽管如此,对比break和continue作为跳转语句都是受限制的,前者跳转的目标是跳出自身所在循环,而后者跳转的目标是自身所在循环的开始位置。而goto语句则可以跳转到函数中任何有标号的语句处。所以由于这种特性,goto语句对于嵌套循环的退出有奇效!但是过度的使用也会产生逻辑不清,层次不清,程序不易阅读的问题。所以不应随意滥用。

2.具体使用

(1)goto语句的语法结构如下:

标识符:语句

goto 标识符;

例如执行语句goto Q;,控制会转移到标号Q后面的语句中,而且要注意的是该语句必须和goto语句在同一个函数中。

(2)流程图如下:

(2)goto语句实现关机实例:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>\
#include<stdlib.h>
int main()
{
	char arr[20] = { 0 };
	system("shutdown -s -t 60");
again:
	printf("你的电脑将在一分钟后自动关机,请输入:阻止关机,请停止关机");
	scanf("%s", arr);
	if (strcmp(arr, "阻止关机") == 0)
	{
		system("shutdown -a");
	}
	else
	{
		goto again;
	}
	return 0;
}

 使用while语句代替goto语句:

//while语句实现关机程序
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>\
#include<stdlib.h>
int main()
{
	char arr[20] = { 0 };
	system("shutdown -s -t 60");
	while (1)
	{
		printf("你的电脑将在一分钟后自动关机,请输入:阻止关机,请停止关机");
		scanf("%s", arr);
		if (strcmp(arr, "阻止关机") == 0)
		{
			system("shutdown -a");
			break;
		}
	}
	return 0;
}

前面也讲到goto语句的强项是实现跳出复杂前台循环,例如以下情况:

//goto语句跳出嵌套循环
for (...)
    for (...)
    {
         for (...)
         {
             if (disaster)
             goto error;
         }
    }
...
error:
    if (disaster)

 

今天分享到这里,希望大家一起提高!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值