C语言中提供了可以随意滥用的goto语句和标记跳转的标号。从理论上讲,goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。
二、goto语句的作用是什么?goto语句在某些场合下goto语句还是用得着的,最常见的用法是终止程序在某些深度嵌套结构的处理过程。例如,一次跳出多层循环的场景。一次跳出多层循环使用break是比较麻烦的,因为break每次使用只能跳出一层循环,在这里只能用多个break才能实现,goto语句的优势就体现出来了。
三、goto语句的巧用实例——关机小程序1、goto语句版关机小程序设计源代码:
goto语句的使用效果其实和我们的循环有异曲同工之妙,goto语句的编写也可以实现循环的效果。对比两个版本的关机小程序设计,你就能深刻感受到啦!
#define _CRT_SECURE_NO_WARNINGS 1//如果是VS编译器才需要这句代码
#include<stdio.h>
#include<stdlib.h>//shutdown命令语句的头文件
#include<string.h>//strcmp的头文件
int main()
{
char input[20] = { 0 };
system("shutdown -s -t 60");
again:
printf("电脑将在1分钟内关闭,如果输入:我是猪,就取消关机!\n请输入:>");
scanf("%s", input);
//strcmp函数用于比较两个字符串的大小
if (0 == strcmp(input, "我是猪"))
{
system("shutdown -a");
}
else
{
goto again;
}
return 0;
}
2、循环语句版关机小程序设计源代码:
#define _CRT_SECURE_NO_WARNINGS 1//如果是VS编译器才需要这句代码
#include<stdio.h>
#include<stdlib.h>//shutdown命令语句的头文件
#include<string.h>//strcmp的头文件
int main()
{
char input[20] = { 0 };
system("shutdown -s -t 60");
while (1)
{
printf("电脑将在1分钟内关闭,如果输入:我是猪,就取消关机!\n请输入:>");
scanf("%s", input);
if (0 == strcmp(input, "我是猪"))
{
system("shutdown -a");
break;
}
}
return 0;
}